@stigmer/react 2.0.1 → 3.0.0
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 +64 -2
- package/agent/AgentDetailView.d.ts +26 -1
- package/agent/AgentDetailView.d.ts.map +1 -1
- package/agent/AgentDetailView.js +9 -2
- package/agent/AgentDetailView.js.map +1 -1
- package/agent/useAgentSetup.d.ts +19 -0
- package/agent/useAgentSetup.d.ts.map +1 -1
- package/agent/useAgentSetup.js +15 -1
- package/agent/useAgentSetup.js.map +1 -1
- package/agent-instance/AgentInstanceDetailPanel.d.ts +26 -0
- package/agent-instance/AgentInstanceDetailPanel.d.ts.map +1 -0
- package/agent-instance/AgentInstanceDetailPanel.js +94 -0
- package/agent-instance/AgentInstanceDetailPanel.js.map +1 -0
- package/agent-instance/AgentInstanceEmptyState.d.ts +17 -0
- package/agent-instance/AgentInstanceEmptyState.d.ts.map +1 -0
- package/agent-instance/AgentInstanceEmptyState.js +21 -0
- package/agent-instance/AgentInstanceEmptyState.js.map +1 -0
- package/agent-instance/AgentInstanceList.d.ts +38 -0
- package/agent-instance/AgentInstanceList.d.ts.map +1 -0
- package/agent-instance/AgentInstanceList.js +75 -0
- package/agent-instance/AgentInstanceList.js.map +1 -0
- package/agent-instance/CreateAgentInstanceDialog.d.ts +24 -0
- package/agent-instance/CreateAgentInstanceDialog.d.ts.map +1 -0
- package/agent-instance/CreateAgentInstanceDialog.js +78 -0
- package/agent-instance/CreateAgentInstanceDialog.js.map +1 -0
- package/agent-instance/index.d.ts +14 -0
- package/agent-instance/index.d.ts.map +1 -1
- package/agent-instance/index.js +7 -0
- package/agent-instance/index.js.map +1 -1
- package/agent-instance/useAgentInstances.d.ts +34 -0
- package/agent-instance/useAgentInstances.d.ts.map +1 -0
- package/agent-instance/useAgentInstances.js +37 -0
- package/agent-instance/useAgentInstances.js.map +1 -0
- package/agent-instance/useDeleteAgentInstance.d.ts +42 -0
- package/agent-instance/useDeleteAgentInstance.d.ts.map +1 -0
- package/agent-instance/useDeleteAgentInstance.js +48 -0
- package/agent-instance/useDeleteAgentInstance.js.map +1 -0
- package/agent-instance/useUpdateAgentInstance.d.ts +36 -0
- package/agent-instance/useUpdateAgentInstance.d.ts.map +1 -0
- package/agent-instance/useUpdateAgentInstance.js +47 -0
- package/agent-instance/useUpdateAgentInstance.js.map +1 -0
- package/composer/SessionComposer.d.ts +18 -0
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +27 -3
- package/composer/SessionComposer.js.map +1 -1
- package/execution/ApprovalCard.d.ts.map +1 -1
- package/execution/ApprovalCard.js +6 -3
- package/execution/ApprovalCard.js.map +1 -1
- package/execution/MessageThread.d.ts +3 -0
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +12 -2
- package/execution/MessageThread.js.map +1 -1
- package/execution/PlanArtifactCard.d.ts +29 -0
- package/execution/PlanArtifactCard.d.ts.map +1 -0
- package/execution/PlanArtifactCard.js +59 -0
- package/execution/PlanArtifactCard.js.map +1 -0
- package/execution/ResultView.d.ts +24 -0
- package/execution/ResultView.d.ts.map +1 -0
- package/execution/ResultView.js +152 -0
- package/execution/ResultView.js.map +1 -0
- package/execution/SubAgentSection.js +1 -1
- package/execution/SubAgentSection.js.map +1 -1
- package/execution/ToolCallDetail.d.ts +13 -19
- package/execution/ToolCallDetail.d.ts.map +1 -1
- package/execution/ToolCallDetail.js +42 -70
- package/execution/ToolCallDetail.js.map +1 -1
- package/execution/ToolCallGroup.js +2 -2
- package/execution/ToolCallGroup.js.map +1 -1
- package/execution/ToolCallItem.d.ts.map +1 -1
- package/execution/ToolCallItem.js +13 -9
- package/execution/ToolCallItem.js.map +1 -1
- package/execution/index.d.ts +7 -1
- package/execution/index.d.ts.map +1 -1
- package/execution/index.js +4 -1
- package/execution/index.js.map +1 -1
- package/execution/tool-categories.d.ts +30 -21
- package/execution/tool-categories.d.ts.map +1 -1
- package/execution/tool-categories.js +57 -49
- package/execution/tool-categories.js.map +1 -1
- package/execution/tool-presenter.d.ts +60 -0
- package/execution/tool-presenter.d.ts.map +1 -0
- package/execution/tool-presenter.js +81 -0
- package/execution/tool-presenter.js.map +1 -0
- package/execution/useCreateAgentExecution.d.ts +9 -0
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js +1 -0
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/index.d.ts +6 -5
- package/index.d.ts.map +1 -1
- package/index.js +7 -4
- package/index.js.map +1 -1
- package/library/detect-plan-artifact.d.ts +26 -0
- package/library/detect-plan-artifact.d.ts.map +1 -0
- package/library/detect-plan-artifact.js +37 -0
- package/library/detect-plan-artifact.js.map +1 -0
- package/library/index.d.ts +1 -0
- package/library/index.d.ts.map +1 -1
- package/library/index.js +1 -0
- package/library/index.js.map +1 -1
- package/package.json +4 -4
- package/provider.d.ts +5 -3
- package/provider.d.ts.map +1 -1
- package/provider.js.map +1 -1
- package/runner-adapter.d.ts +19 -4
- package/runner-adapter.d.ts.map +1 -1
- package/runner-adapter.js.map +1 -1
- package/session/NewSessionViewer.d.ts +10 -1
- package/session/NewSessionViewer.d.ts.map +1 -1
- package/session/NewSessionViewer.js +2 -2
- package/session/NewSessionViewer.js.map +1 -1
- package/session/SessionViewer.d.ts.map +1 -1
- package/session/SessionViewer.js +17 -2
- package/session/SessionViewer.js.map +1 -1
- package/session/useCreateSession.d.ts.map +1 -1
- package/session/useCreateSession.js +4 -6
- package/session/useCreateSession.js.map +1 -1
- package/session/useLocalSessionWorker.d.ts +33 -0
- package/session/useLocalSessionWorker.d.ts.map +1 -0
- package/session/useLocalSessionWorker.js +65 -0
- package/session/useLocalSessionWorker.js.map +1 -0
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +22 -1
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useSessionConversation.d.ts +12 -0
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +11 -0
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts +23 -0
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +21 -1
- package/session/useSessionPageFlow.js.map +1 -1
- package/src/__tests__/runner-adapter.test.tsx +14 -107
- package/src/agent/AgentDetailView.tsx +49 -1
- package/src/agent/__tests__/useAgentSetup.resolveToInstance.test.tsx +73 -0
- package/src/agent/useAgentSetup.ts +48 -1
- package/src/agent-instance/AgentInstanceDetailPanel.tsx +359 -0
- package/src/agent-instance/AgentInstanceEmptyState.tsx +87 -0
- package/src/agent-instance/AgentInstanceList.tsx +329 -0
- package/src/agent-instance/CreateAgentInstanceDialog.tsx +258 -0
- package/src/agent-instance/__tests__/agent-instance-hooks.test.tsx +213 -0
- package/src/agent-instance/index.ts +15 -0
- package/src/agent-instance/useAgentInstances.ts +66 -0
- package/src/agent-instance/useDeleteAgentInstance.ts +73 -0
- package/src/agent-instance/useUpdateAgentInstance.ts +67 -0
- package/src/composer/SessionComposer.tsx +54 -2
- package/src/execution/ApprovalCard.tsx +22 -3
- package/src/execution/MessageThread.tsx +27 -3
- package/src/execution/PlanArtifactCard.tsx +257 -0
- package/src/execution/ResultView.tsx +366 -0
- package/src/execution/SubAgentSection.tsx +5 -0
- package/src/execution/ToolCallDetail.tsx +72 -173
- package/src/execution/ToolCallGroup.tsx +2 -2
- package/src/execution/ToolCallItem.tsx +25 -12
- package/src/execution/__tests__/ApprovalCard.test.tsx +99 -0
- package/src/execution/__tests__/ResultView.test.tsx +95 -0
- package/src/execution/__tests__/subagent-thread-item.test.ts +153 -0
- package/src/execution/__tests__/tool-presenter.test.tsx +78 -0
- package/src/execution/index.ts +16 -0
- package/src/execution/tool-categories.ts +80 -66
- package/src/execution/tool-presenter.ts +118 -0
- package/src/execution/useCreateAgentExecution.ts +10 -0
- package/src/index.ts +32 -1
- package/src/library/__tests__/detect-plan-artifact.test.ts +75 -0
- package/src/library/detect-plan-artifact.ts +43 -0
- package/src/library/index.ts +6 -0
- package/src/provider.tsx +5 -3
- package/src/runner-adapter.ts +19 -4
- package/src/session/NewSessionViewer.tsx +11 -0
- package/src/session/SessionViewer.tsx +46 -2
- package/src/session/__tests__/group-sessions.test.ts +3 -5
- package/src/session/__tests__/useLocalSessionWorker.test.tsx +194 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +80 -4
- package/src/session/__tests__/useSessionConversation.test.tsx +89 -0
- package/src/session/__tests__/useSessionPageFlow.autoApprove.test.tsx +149 -0
- package/src/session/useCreateSession.ts +4 -7
- package/src/session/useLocalSessionWorker.ts +73 -0
- package/src/session/useNewSessionFlow.ts +23 -1
- package/src/session/useSessionConversation.ts +18 -0
- package/src/session/useSessionPageFlow.ts +51 -1
- package/src/workflow/__tests__/useWorkflowExecution.test.tsx +2 -2
- package/styles.css +1 -1
- package/__tests__/hooks.test.d.ts +0 -2
- package/__tests__/hooks.test.d.ts.map +0 -1
- package/__tests__/hooks.test.js +0 -35
- package/__tests__/hooks.test.js.map +0 -1
- package/__tests__/runner-adapter.test.d.ts +0 -2
- package/__tests__/runner-adapter.test.d.ts.map +0 -1
- package/__tests__/runner-adapter.test.js +0 -153
- package/__tests__/runner-adapter.test.js.map +0 -1
- package/activity/__tests__/useRecentActivity-optimistic.test.d.ts +0 -2
- package/activity/__tests__/useRecentActivity-optimistic.test.d.ts.map +0 -1
- package/activity/__tests__/useRecentActivity-optimistic.test.js +0 -139
- package/activity/__tests__/useRecentActivity-optimistic.test.js.map +0 -1
- package/activity/__tests__/useRecentActivity.test.d.ts +0 -2
- package/activity/__tests__/useRecentActivity.test.d.ts.map +0 -1
- package/activity/__tests__/useRecentActivity.test.js +0 -107
- package/activity/__tests__/useRecentActivity.test.js.map +0 -1
- package/agent/__tests__/useAgent.test.d.ts +0 -2
- package/agent/__tests__/useAgent.test.d.ts.map +0 -1
- package/agent/__tests__/useAgent.test.js +0 -86
- package/agent/__tests__/useAgent.test.js.map +0 -1
- package/agent/__tests__/useDefaultAgent.test.d.ts +0 -2
- package/agent/__tests__/useDefaultAgent.test.d.ts.map +0 -1
- package/agent/__tests__/useDefaultAgent.test.js +0 -135
- package/agent/__tests__/useDefaultAgent.test.js.map +0 -1
- package/billing/__tests__/CreditLedgerTable.test.d.ts +0 -2
- package/billing/__tests__/CreditLedgerTable.test.d.ts.map +0 -1
- package/billing/__tests__/CreditLedgerTable.test.js +0 -74
- package/billing/__tests__/CreditLedgerTable.test.js.map +0 -1
- package/composer/__tests__/ComposerToolbar-directAction.test.d.ts +0 -2
- package/composer/__tests__/ComposerToolbar-directAction.test.d.ts.map +0 -1
- package/composer/__tests__/ComposerToolbar-directAction.test.js +0 -64
- package/composer/__tests__/ComposerToolbar-directAction.test.js.map +0 -1
- package/composer/__tests__/SessionComposer-contract.test.d.ts +0 -2
- package/composer/__tests__/SessionComposer-contract.test.d.ts.map +0 -1
- package/composer/__tests__/SessionComposer-contract.test.js +0 -87
- package/composer/__tests__/SessionComposer-contract.test.js.map +0 -1
- package/composer/__tests__/SessionComposer-fileref.test.d.ts +0 -2
- package/composer/__tests__/SessionComposer-fileref.test.d.ts.map +0 -1
- package/composer/__tests__/SessionComposer-fileref.test.js +0 -132
- package/composer/__tests__/SessionComposer-fileref.test.js.map +0 -1
- package/composer/__tests__/SessionComposer-memo.test.d.ts +0 -2
- package/composer/__tests__/SessionComposer-memo.test.d.ts.map +0 -1
- package/composer/__tests__/SessionComposer-memo.test.js +0 -28
- package/composer/__tests__/SessionComposer-memo.test.js.map +0 -1
- package/composer/__tests__/useComposer.test.d.ts +0 -2
- package/composer/__tests__/useComposer.test.d.ts.map +0 -1
- package/composer/__tests__/useComposer.test.js +0 -139
- package/composer/__tests__/useComposer.test.js.map +0 -1
- package/environment/__tests__/systemEnvVars.test.d.ts +0 -2
- package/environment/__tests__/systemEnvVars.test.d.ts.map +0 -1
- package/environment/__tests__/systemEnvVars.test.js +0 -76
- package/environment/__tests__/systemEnvVars.test.js.map +0 -1
- package/execution/__tests__/MessageThread.test.d.ts +0 -2
- package/execution/__tests__/MessageThread.test.d.ts.map +0 -1
- package/execution/__tests__/MessageThread.test.js +0 -164
- package/execution/__tests__/MessageThread.test.js.map +0 -1
- package/execution/__tests__/PlanCompletionCard.test.d.ts +0 -2
- package/execution/__tests__/PlanCompletionCard.test.d.ts.map +0 -1
- package/execution/__tests__/PlanCompletionCard.test.js +0 -53
- package/execution/__tests__/PlanCompletionCard.test.js.map +0 -1
- package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts +0 -2
- package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts.map +0 -1
- package/execution/__tests__/buildThreadItems-plan-completion.test.js +0 -137
- package/execution/__tests__/buildThreadItems-plan-completion.test.js.map +0 -1
- package/execution/__tests__/execution-phases.test.d.ts +0 -2
- package/execution/__tests__/execution-phases.test.d.ts.map +0 -1
- package/execution/__tests__/execution-phases.test.js +0 -25
- package/execution/__tests__/execution-phases.test.js.map +0 -1
- package/execution/__tests__/file-path-resolver.test.d.ts +0 -2
- package/execution/__tests__/file-path-resolver.test.d.ts.map +0 -1
- package/execution/__tests__/file-path-resolver.test.js +0 -180
- package/execution/__tests__/file-path-resolver.test.js.map +0 -1
- package/execution/__tests__/message-entry.test.d.ts +0 -2
- package/execution/__tests__/message-entry.test.d.ts.map +0 -1
- package/execution/__tests__/message-entry.test.js +0 -178
- package/execution/__tests__/message-entry.test.js.map +0 -1
- package/execution/__tests__/thread-keys.test.d.ts +0 -2
- package/execution/__tests__/thread-keys.test.d.ts.map +0 -1
- package/execution/__tests__/thread-keys.test.js +0 -462
- package/execution/__tests__/thread-keys.test.js.map +0 -1
- package/execution/__tests__/thread-memoization.test.d.ts +0 -2
- package/execution/__tests__/thread-memoization.test.d.ts.map +0 -1
- package/execution/__tests__/thread-memoization.test.js +0 -262
- package/execution/__tests__/thread-memoization.test.js.map +0 -1
- package/execution/__tests__/thread-skeleton.test.d.ts +0 -2
- package/execution/__tests__/thread-skeleton.test.d.ts.map +0 -1
- package/execution/__tests__/thread-skeleton.test.js +0 -35
- package/execution/__tests__/thread-skeleton.test.js.map +0 -1
- package/execution/__tests__/useContextWindow.test.d.ts +0 -2
- package/execution/__tests__/useContextWindow.test.d.ts.map +0 -1
- package/execution/__tests__/useContextWindow.test.js +0 -121
- package/execution/__tests__/useContextWindow.test.js.map +0 -1
- package/execution/__tests__/useExecutionStream.test.d.ts +0 -2
- package/execution/__tests__/useExecutionStream.test.d.ts.map +0 -1
- package/execution/__tests__/useExecutionStream.test.js +0 -253
- package/execution/__tests__/useExecutionStream.test.js.map +0 -1
- package/execution/__tests__/useSessionVariables-stability.test.d.ts +0 -2
- package/execution/__tests__/useSessionVariables-stability.test.d.ts.map +0 -1
- package/execution/__tests__/useSessionVariables-stability.test.js +0 -69
- package/execution/__tests__/useSessionVariables-stability.test.js.map +0 -1
- package/execution/__tests__/virtualized-thread.test.d.ts +0 -2
- package/execution/__tests__/virtualized-thread.test.d.ts.map +0 -1
- package/execution/__tests__/virtualized-thread.test.js +0 -274
- package/execution/__tests__/virtualized-thread.test.js.map +0 -1
- package/file-reference/__tests__/FileReferenceChipList.test.d.ts +0 -2
- package/file-reference/__tests__/FileReferenceChipList.test.d.ts.map +0 -1
- package/file-reference/__tests__/FileReferenceChipList.test.js +0 -48
- package/file-reference/__tests__/FileReferenceChipList.test.js.map +0 -1
- package/file-reference/__tests__/useFileReferences.test.d.ts +0 -2
- package/file-reference/__tests__/useFileReferences.test.d.ts.map +0 -1
- package/file-reference/__tests__/useFileReferences.test.js +0 -90
- package/file-reference/__tests__/useFileReferences.test.js.map +0 -1
- package/github/__tests__/parseGitUrl.test.d.ts +0 -2
- package/github/__tests__/parseGitUrl.test.d.ts.map +0 -1
- package/github/__tests__/parseGitUrl.test.js +0 -47
- package/github/__tests__/parseGitUrl.test.js.map +0 -1
- package/github/__tests__/useGitHubTreeLister.test.d.ts +0 -2
- package/github/__tests__/useGitHubTreeLister.test.d.ts.map +0 -1
- package/github/__tests__/useGitHubTreeLister.test.js +0 -112
- package/github/__tests__/useGitHubTreeLister.test.js.map +0 -1
- package/internal/__tests__/ResizableSplit.test.d.ts +0 -2
- package/internal/__tests__/ResizableSplit.test.d.ts.map +0 -1
- package/internal/__tests__/ResizableSplit.test.js +0 -118
- package/internal/__tests__/ResizableSplit.test.js.map +0 -1
- package/internal/__tests__/fetch-cache.test.d.ts +0 -2
- package/internal/__tests__/fetch-cache.test.d.ts.map +0 -1
- package/internal/__tests__/fetch-cache.test.js +0 -182
- package/internal/__tests__/fetch-cache.test.js.map +0 -1
- package/internal/__tests__/stream-controller.test.d.ts +0 -2
- package/internal/__tests__/stream-controller.test.d.ts.map +0 -1
- package/internal/__tests__/stream-controller.test.js +0 -327
- package/internal/__tests__/stream-controller.test.js.map +0 -1
- package/internal/__tests__/thread-animation.test.d.ts +0 -2
- package/internal/__tests__/thread-animation.test.d.ts.map +0 -1
- package/internal/__tests__/thread-animation.test.js +0 -79
- package/internal/__tests__/thread-animation.test.js.map +0 -1
- package/internal/__tests__/useAutoScroll.test.d.ts +0 -2
- package/internal/__tests__/useAutoScroll.test.d.ts.map +0 -1
- package/internal/__tests__/useAutoScroll.test.js +0 -188
- package/internal/__tests__/useAutoScroll.test.js.map +0 -1
- package/internal/__tests__/useFetch-cache.test.d.ts +0 -2
- package/internal/__tests__/useFetch-cache.test.d.ts.map +0 -1
- package/internal/__tests__/useFetch-cache.test.js +0 -137
- package/internal/__tests__/useFetch-cache.test.js.map +0 -1
- package/internal/__tests__/useFetch-identity-reset.test.d.ts +0 -2
- package/internal/__tests__/useFetch-identity-reset.test.d.ts.map +0 -1
- package/internal/__tests__/useFetch-identity-reset.test.js +0 -281
- package/internal/__tests__/useFetch-identity-reset.test.js.map +0 -1
- package/internal/__tests__/useFetch.test.d.ts +0 -2
- package/internal/__tests__/useFetch.test.d.ts.map +0 -1
- package/internal/__tests__/useFetch.test.js +0 -95
- package/internal/__tests__/useFetch.test.js.map +0 -1
- package/internal/dev/__tests__/use-key-stability.test.d.ts +0 -2
- package/internal/dev/__tests__/use-key-stability.test.d.ts.map +0 -1
- package/internal/dev/__tests__/use-key-stability.test.js +0 -72
- package/internal/dev/__tests__/use-key-stability.test.js.map +0 -1
- package/internal/dev/__tests__/use-render-tracer.test.d.ts +0 -2
- package/internal/dev/__tests__/use-render-tracer.test.d.ts.map +0 -1
- package/internal/dev/__tests__/use-render-tracer.test.js +0 -55
- package/internal/dev/__tests__/use-render-tracer.test.js.map +0 -1
- package/internal/file-tree/__tests__/FileTreeNode-drag.test.d.ts +0 -2
- package/internal/file-tree/__tests__/FileTreeNode-drag.test.d.ts.map +0 -1
- package/internal/file-tree/__tests__/FileTreeNode-drag.test.js +0 -55
- package/internal/file-tree/__tests__/FileTreeNode-drag.test.js.map +0 -1
- package/internal/file-tree/__tests__/buildFileTree.test.d.ts +0 -2
- package/internal/file-tree/__tests__/buildFileTree.test.d.ts.map +0 -1
- package/internal/file-tree/__tests__/buildFileTree.test.js +0 -102
- package/internal/file-tree/__tests__/buildFileTree.test.js.map +0 -1
- package/internal/file-tree/__tests__/filterFileTree.test.d.ts +0 -2
- package/internal/file-tree/__tests__/filterFileTree.test.d.ts.map +0 -1
- package/internal/file-tree/__tests__/filterFileTree.test.js +0 -120
- package/internal/file-tree/__tests__/filterFileTree.test.js.map +0 -1
- package/internal/store/__tests__/conversation-store.test.d.ts +0 -2
- package/internal/store/__tests__/conversation-store.test.d.ts.map +0 -1
- package/internal/store/__tests__/conversation-store.test.js +0 -200
- package/internal/store/__tests__/conversation-store.test.js.map +0 -1
- package/internal/store/__tests__/selection-store.test.d.ts +0 -2
- package/internal/store/__tests__/selection-store.test.d.ts.map +0 -1
- package/internal/store/__tests__/selection-store.test.js +0 -93
- package/internal/store/__tests__/selection-store.test.js.map +0 -1
- package/internal/store/__tests__/structural-share.test.d.ts +0 -2
- package/internal/store/__tests__/structural-share.test.d.ts.map +0 -1
- package/internal/store/__tests__/structural-share.test.js +0 -368
- package/internal/store/__tests__/structural-share.test.js.map +0 -1
- package/internal/store/__tests__/workflow-execution-event-store.test.d.ts +0 -2
- package/internal/store/__tests__/workflow-execution-event-store.test.d.ts.map +0 -1
- package/internal/store/__tests__/workflow-execution-event-store.test.js +0 -215
- package/internal/store/__tests__/workflow-execution-event-store.test.js.map +0 -1
- package/invitation/__tests__/useCreateInvitation.test.d.ts +0 -2
- package/invitation/__tests__/useCreateInvitation.test.d.ts.map +0 -1
- package/invitation/__tests__/useCreateInvitation.test.js +0 -152
- package/invitation/__tests__/useCreateInvitation.test.js.map +0 -1
- package/models/__tests__/HarnessSelector.test.d.ts +0 -2
- package/models/__tests__/HarnessSelector.test.d.ts.map +0 -1
- package/models/__tests__/HarnessSelector.test.js +0 -160
- package/models/__tests__/HarnessSelector.test.js.map +0 -1
- package/models/__tests__/harness.test.d.ts +0 -2
- package/models/__tests__/harness.test.d.ts.map +0 -1
- package/models/__tests__/harness.test.js +0 -50
- package/models/__tests__/harness.test.js.map +0 -1
- package/models/__tests__/useModelRegistry.test.d.ts +0 -2
- package/models/__tests__/useModelRegistry.test.d.ts.map +0 -1
- package/models/__tests__/useModelRegistry.test.js +0 -246
- package/models/__tests__/useModelRegistry.test.js.map +0 -1
- package/session/__tests__/execution-target.test.d.ts +0 -2
- package/session/__tests__/execution-target.test.d.ts.map +0 -1
- package/session/__tests__/execution-target.test.js +0 -34
- package/session/__tests__/execution-target.test.js.map +0 -1
- package/session/__tests__/group-sessions.test.d.ts +0 -2
- package/session/__tests__/group-sessions.test.d.ts.map +0 -1
- package/session/__tests__/group-sessions.test.js +0 -91
- package/session/__tests__/group-sessions.test.js.map +0 -1
- package/session/__tests__/session-spec-converters.test.d.ts +0 -2
- package/session/__tests__/session-spec-converters.test.d.ts.map +0 -1
- package/session/__tests__/session-spec-converters.test.js +0 -160
- package/session/__tests__/session-spec-converters.test.js.map +0 -1
- package/session/__tests__/useCreateSession.test.d.ts +0 -2
- package/session/__tests__/useCreateSession.test.d.ts.map +0 -1
- package/session/__tests__/useCreateSession.test.js +0 -228
- package/session/__tests__/useCreateSession.test.js.map +0 -1
- package/session/__tests__/useNewSessionFlow.test.d.ts +0 -2
- package/session/__tests__/useNewSessionFlow.test.d.ts.map +0 -1
- package/session/__tests__/useNewSessionFlow.test.js +0 -364
- package/session/__tests__/useNewSessionFlow.test.js.map +0 -1
- package/session/__tests__/usePersistedModel.test.d.ts +0 -2
- package/session/__tests__/usePersistedModel.test.d.ts.map +0 -1
- package/session/__tests__/usePersistedModel.test.js +0 -96
- package/session/__tests__/usePersistedModel.test.js.map +0 -1
- package/session/__tests__/useSession.test.d.ts +0 -2
- package/session/__tests__/useSession.test.d.ts.map +0 -1
- package/session/__tests__/useSession.test.js +0 -93
- package/session/__tests__/useSession.test.js.map +0 -1
- package/session/__tests__/useSessionConversation.test.d.ts +0 -2
- package/session/__tests__/useSessionConversation.test.d.ts.map +0 -1
- package/session/__tests__/useSessionConversation.test.js +0 -246
- package/session/__tests__/useSessionConversation.test.js.map +0 -1
- package/session/__tests__/useSessionList.test.d.ts +0 -2
- package/session/__tests__/useSessionList.test.d.ts.map +0 -1
- package/session/__tests__/useSessionList.test.js +0 -63
- package/session/__tests__/useSessionList.test.js.map +0 -1
- package/session/__tests__/useSessionUsage.test.d.ts +0 -2
- package/session/__tests__/useSessionUsage.test.d.ts.map +0 -1
- package/session/__tests__/useSessionUsage.test.js +0 -146
- package/session/__tests__/useSessionUsage.test.js.map +0 -1
- package/session/inspector/__tests__/useSessionInspector.test.d.ts +0 -2
- package/session/inspector/__tests__/useSessionInspector.test.d.ts.map +0 -1
- package/session/inspector/__tests__/useSessionInspector.test.js +0 -195
- package/session/inspector/__tests__/useSessionInspector.test.js.map +0 -1
- package/test/__tests__/samples.test.d.ts +0 -2
- package/test/__tests__/samples.test.d.ts.map +0 -1
- package/test/__tests__/samples.test.js +0 -152
- package/test/__tests__/samples.test.js.map +0 -1
- package/workflow/__tests__/ExecutionInspector.test.d.ts +0 -2
- package/workflow/__tests__/ExecutionInspector.test.d.ts.map +0 -1
- package/workflow/__tests__/ExecutionInspector.test.js +0 -91
- package/workflow/__tests__/ExecutionInspector.test.js.map +0 -1
- package/workflow/__tests__/WorkflowArchitectDialog.test.d.ts +0 -2
- package/workflow/__tests__/WorkflowArchitectDialog.test.d.ts.map +0 -1
- package/workflow/__tests__/WorkflowArchitectDialog.test.js +0 -126
- package/workflow/__tests__/WorkflowArchitectDialog.test.js.map +0 -1
- package/workflow/__tests__/WorkflowRefinePanel.test.d.ts +0 -2
- package/workflow/__tests__/WorkflowRefinePanel.test.d.ts.map +0 -1
- package/workflow/__tests__/WorkflowRefinePanel.test.js +0 -138
- package/workflow/__tests__/WorkflowRefinePanel.test.js.map +0 -1
- package/workflow/__tests__/WorkflowRepairCard.test.d.ts +0 -2
- package/workflow/__tests__/WorkflowRepairCard.test.d.ts.map +0 -1
- package/workflow/__tests__/WorkflowRepairCard.test.js +0 -158
- package/workflow/__tests__/WorkflowRepairCard.test.js.map +0 -1
- package/workflow/__tests__/WorkflowTaskApprovalCard.test.d.ts +0 -2
- package/workflow/__tests__/WorkflowTaskApprovalCard.test.d.ts.map +0 -1
- package/workflow/__tests__/WorkflowTaskApprovalCard.test.js +0 -221
- package/workflow/__tests__/WorkflowTaskApprovalCard.test.js.map +0 -1
- package/workflow/__tests__/WorkflowTaskApprovalSummary.test.d.ts +0 -2
- package/workflow/__tests__/WorkflowTaskApprovalSummary.test.d.ts.map +0 -1
- package/workflow/__tests__/WorkflowTaskApprovalSummary.test.js +0 -94
- package/workflow/__tests__/WorkflowTaskApprovalSummary.test.js.map +0 -1
- package/workflow/__tests__/agent-call-live-experience.test.d.ts +0 -11
- package/workflow/__tests__/agent-call-live-experience.test.d.ts.map +0 -1
- package/workflow/__tests__/agent-call-live-experience.test.js +0 -379
- package/workflow/__tests__/agent-call-live-experience.test.js.map +0 -1
- package/workflow/__tests__/branch-commands.test.d.ts +0 -2
- package/workflow/__tests__/branch-commands.test.d.ts.map +0 -1
- package/workflow/__tests__/branch-commands.test.js +0 -165
- package/workflow/__tests__/branch-commands.test.js.map +0 -1
- package/workflow/__tests__/caption-dimensions.test.d.ts +0 -2
- package/workflow/__tests__/caption-dimensions.test.d.ts.map +0 -1
- package/workflow/__tests__/caption-dimensions.test.js +0 -89
- package/workflow/__tests__/caption-dimensions.test.js.map +0 -1
- package/workflow/__tests__/clipboard.test.d.ts +0 -2
- package/workflow/__tests__/clipboard.test.d.ts.map +0 -1
- package/workflow/__tests__/clipboard.test.js +0 -172
- package/workflow/__tests__/clipboard.test.js.map +0 -1
- package/workflow/__tests__/cncf-yaml-to-graph.test.d.ts +0 -2
- package/workflow/__tests__/cncf-yaml-to-graph.test.d.ts.map +0 -1
- package/workflow/__tests__/cncf-yaml-to-graph.test.js +0 -479
- package/workflow/__tests__/cncf-yaml-to-graph.test.js.map +0 -1
- package/workflow/__tests__/context-menu-logic.test.d.ts +0 -2
- package/workflow/__tests__/context-menu-logic.test.d.ts.map +0 -1
- package/workflow/__tests__/context-menu-logic.test.js +0 -97
- package/workflow/__tests__/context-menu-logic.test.js.map +0 -1
- package/workflow/__tests__/derive-execution-overlays.test.d.ts +0 -2
- package/workflow/__tests__/derive-execution-overlays.test.d.ts.map +0 -1
- package/workflow/__tests__/derive-execution-overlays.test.js +0 -338
- package/workflow/__tests__/derive-execution-overlays.test.js.map +0 -1
- package/workflow/__tests__/derive-task-detail.test.d.ts +0 -2
- package/workflow/__tests__/derive-task-detail.test.d.ts.map +0 -1
- package/workflow/__tests__/derive-task-detail.test.js +0 -1035
- package/workflow/__tests__/derive-task-detail.test.js.map +0 -1
- package/workflow/__tests__/derive-waterfall-entries.test.d.ts +0 -2
- package/workflow/__tests__/derive-waterfall-entries.test.d.ts.map +0 -1
- package/workflow/__tests__/derive-waterfall-entries.test.js +0 -419
- package/workflow/__tests__/derive-waterfall-entries.test.js.map +0 -1
- package/workflow/__tests__/execution-graph.test.d.ts +0 -2
- package/workflow/__tests__/execution-graph.test.d.ts.map +0 -1
- package/workflow/__tests__/execution-graph.test.js +0 -251
- package/workflow/__tests__/execution-graph.test.js.map +0 -1
- package/workflow/__tests__/execution-inspector.test.d.ts +0 -2
- package/workflow/__tests__/execution-inspector.test.d.ts.map +0 -1
- package/workflow/__tests__/execution-inspector.test.js +0 -248
- package/workflow/__tests__/execution-inspector.test.js.map +0 -1
- package/workflow/__tests__/extract-workflow-yaml.test.d.ts +0 -2
- package/workflow/__tests__/extract-workflow-yaml.test.d.ts.map +0 -1
- package/workflow/__tests__/extract-workflow-yaml.test.js +0 -135
- package/workflow/__tests__/extract-workflow-yaml.test.js.map +0 -1
- package/workflow/__tests__/format-utils.test.d.ts +0 -2
- package/workflow/__tests__/format-utils.test.d.ts.map +0 -1
- package/workflow/__tests__/format-utils.test.js +0 -128
- package/workflow/__tests__/format-utils.test.js.map +0 -1
- package/workflow/__tests__/inspector-commands.test.d.ts +0 -2
- package/workflow/__tests__/inspector-commands.test.d.ts.map +0 -1
- package/workflow/__tests__/inspector-commands.test.js +0 -110
- package/workflow/__tests__/inspector-commands.test.js.map +0 -1
- package/workflow/__tests__/inspector-forms.test.d.ts +0 -2
- package/workflow/__tests__/inspector-forms.test.d.ts.map +0 -1
- package/workflow/__tests__/inspector-forms.test.js +0 -114
- package/workflow/__tests__/inspector-forms.test.js.map +0 -1
- package/workflow/__tests__/inspector-tabs.test.d.ts +0 -2
- package/workflow/__tests__/inspector-tabs.test.d.ts.map +0 -1
- package/workflow/__tests__/inspector-tabs.test.js +0 -81
- package/workflow/__tests__/inspector-tabs.test.js.map +0 -1
- package/workflow/__tests__/kind-metadata.test.d.ts +0 -2
- package/workflow/__tests__/kind-metadata.test.d.ts.map +0 -1
- package/workflow/__tests__/kind-metadata.test.js +0 -80
- package/workflow/__tests__/kind-metadata.test.js.map +0 -1
- package/workflow/__tests__/motion-preference.test.d.ts +0 -2
- package/workflow/__tests__/motion-preference.test.d.ts.map +0 -1
- package/workflow/__tests__/motion-preference.test.js +0 -42
- package/workflow/__tests__/motion-preference.test.js.map +0 -1
- package/workflow/__tests__/node-popover.test.d.ts +0 -2
- package/workflow/__tests__/node-popover.test.d.ts.map +0 -1
- package/workflow/__tests__/node-popover.test.js +0 -130
- package/workflow/__tests__/node-popover.test.js.map +0 -1
- package/workflow/__tests__/node-shell.test.d.ts +0 -2
- package/workflow/__tests__/node-shell.test.d.ts.map +0 -1
- package/workflow/__tests__/node-shell.test.js +0 -210
- package/workflow/__tests__/node-shell.test.js.map +0 -1
- package/workflow/__tests__/overview-graph.test.d.ts +0 -2
- package/workflow/__tests__/overview-graph.test.d.ts.map +0 -1
- package/workflow/__tests__/overview-graph.test.js +0 -83
- package/workflow/__tests__/overview-graph.test.js.map +0 -1
- package/workflow/__tests__/overview-summary.test.d.ts +0 -2
- package/workflow/__tests__/overview-summary.test.d.ts.map +0 -1
- package/workflow/__tests__/overview-summary.test.js +0 -73
- package/workflow/__tests__/overview-summary.test.js.map +0 -1
- package/workflow/__tests__/shortcut-registry.test.d.ts +0 -2
- package/workflow/__tests__/shortcut-registry.test.d.ts.map +0 -1
- package/workflow/__tests__/shortcut-registry.test.js +0 -111
- package/workflow/__tests__/shortcut-registry.test.js.map +0 -1
- package/workflow/__tests__/starter-workflow-yaml.test.d.ts +0 -2
- package/workflow/__tests__/starter-workflow-yaml.test.d.ts.map +0 -1
- package/workflow/__tests__/starter-workflow-yaml.test.js +0 -44
- package/workflow/__tests__/starter-workflow-yaml.test.js.map +0 -1
- package/workflow/__tests__/structured-data-viewer.test.d.ts +0 -2
- package/workflow/__tests__/structured-data-viewer.test.d.ts.map +0 -1
- package/workflow/__tests__/structured-data-viewer.test.js +0 -438
- package/workflow/__tests__/structured-data-viewer.test.js.map +0 -1
- package/workflow/__tests__/t09-branch-management.test.d.ts +0 -2
- package/workflow/__tests__/t09-branch-management.test.d.ts.map +0 -1
- package/workflow/__tests__/t09-branch-management.test.js +0 -433
- package/workflow/__tests__/t09-branch-management.test.js.map +0 -1
- package/workflow/__tests__/task-type-visual-registry.test.d.ts +0 -2
- package/workflow/__tests__/task-type-visual-registry.test.d.ts.map +0 -1
- package/workflow/__tests__/task-type-visual-registry.test.js +0 -99
- package/workflow/__tests__/task-type-visual-registry.test.js.map +0 -1
- package/workflow/__tests__/useActiveTaskName.test.d.ts +0 -2
- package/workflow/__tests__/useActiveTaskName.test.d.ts.map +0 -1
- package/workflow/__tests__/useActiveTaskName.test.js +0 -80
- package/workflow/__tests__/useActiveTaskName.test.js.map +0 -1
- package/workflow/__tests__/useDiagnoseExecutionFlow.test.d.ts +0 -2
- package/workflow/__tests__/useDiagnoseExecutionFlow.test.d.ts.map +0 -1
- package/workflow/__tests__/useDiagnoseExecutionFlow.test.js +0 -363
- package/workflow/__tests__/useDiagnoseExecutionFlow.test.js.map +0 -1
- package/workflow/__tests__/useExecutionAnnouncements.test.d.ts +0 -2
- package/workflow/__tests__/useExecutionAnnouncements.test.d.ts.map +0 -1
- package/workflow/__tests__/useExecutionAnnouncements.test.js +0 -85
- package/workflow/__tests__/useExecutionAnnouncements.test.js.map +0 -1
- package/workflow/__tests__/useFollowExecution.test.d.ts +0 -2
- package/workflow/__tests__/useFollowExecution.test.d.ts.map +0 -1
- package/workflow/__tests__/useFollowExecution.test.js +0 -130
- package/workflow/__tests__/useFollowExecution.test.js.map +0 -1
- package/workflow/__tests__/useRefineWorkflowFlow.test.d.ts +0 -2
- package/workflow/__tests__/useRefineWorkflowFlow.test.d.ts.map +0 -1
- package/workflow/__tests__/useRefineWorkflowFlow.test.js +0 -367
- package/workflow/__tests__/useRefineWorkflowFlow.test.js.map +0 -1
- package/workflow/__tests__/useRunWorkflowFlow.test.d.ts +0 -2
- package/workflow/__tests__/useRunWorkflowFlow.test.d.ts.map +0 -1
- package/workflow/__tests__/useRunWorkflowFlow.test.js +0 -385
- package/workflow/__tests__/useRunWorkflowFlow.test.js.map +0 -1
- package/workflow/__tests__/useWorkflowArchitectFlow.test.d.ts +0 -2
- package/workflow/__tests__/useWorkflowArchitectFlow.test.d.ts.map +0 -1
- package/workflow/__tests__/useWorkflowArchitectFlow.test.js +0 -376
- package/workflow/__tests__/useWorkflowArchitectFlow.test.js.map +0 -1
- package/workflow/__tests__/useWorkflowExecution.test.d.ts +0 -2
- package/workflow/__tests__/useWorkflowExecution.test.d.ts.map +0 -1
- package/workflow/__tests__/useWorkflowExecution.test.js +0 -229
- package/workflow/__tests__/useWorkflowExecution.test.js.map +0 -1
- package/workflow/__tests__/useWorkflowExecutionActions.test.d.ts +0 -2
- package/workflow/__tests__/useWorkflowExecutionActions.test.d.ts.map +0 -1
- package/workflow/__tests__/useWorkflowExecutionActions.test.js +0 -191
- package/workflow/__tests__/useWorkflowExecutionActions.test.js.map +0 -1
- package/workflow/__tests__/useWorkflowExecutionEventStream.test.d.ts +0 -2
- package/workflow/__tests__/useWorkflowExecutionEventStream.test.d.ts.map +0 -1
- package/workflow/__tests__/useWorkflowExecutionEventStream.test.js +0 -291
- package/workflow/__tests__/useWorkflowExecutionEventStream.test.js.map +0 -1
- package/workflow/__tests__/workflow-instance-hooks.test.d.ts +0 -2
- package/workflow/__tests__/workflow-instance-hooks.test.d.ts.map +0 -1
- package/workflow/__tests__/workflow-instance-hooks.test.js +0 -153
- package/workflow/__tests__/workflow-instance-hooks.test.js.map +0 -1
- package/workflow/__tests__/workflow-summary-panel.test.d.ts +0 -2
- package/workflow/__tests__/workflow-summary-panel.test.d.ts.map +0 -1
- package/workflow/__tests__/workflow-summary-panel.test.js +0 -85
- package/workflow/__tests__/workflow-summary-panel.test.js.map +0 -1
- package/workflow/__tests__/workflow-uses-trigger-input.test.d.ts +0 -2
- package/workflow/__tests__/workflow-uses-trigger-input.test.d.ts.map +0 -1
- package/workflow/__tests__/workflow-uses-trigger-input.test.js +0 -144
- package/workflow/__tests__/workflow-uses-trigger-input.test.js.map +0 -1
- package/workflow/__tests__/workflow-yaml-diff.test.d.ts +0 -2
- package/workflow/__tests__/workflow-yaml-diff.test.d.ts.map +0 -1
- package/workflow/__tests__/workflow-yaml-diff.test.js +0 -110
- package/workflow/__tests__/workflow-yaml-diff.test.js.map +0 -1
- package/workflow/diff/__tests__/build-diff-graph.test.d.ts +0 -2
- package/workflow/diff/__tests__/build-diff-graph.test.d.ts.map +0 -1
- package/workflow/diff/__tests__/build-diff-graph.test.js +0 -115
- package/workflow/diff/__tests__/build-diff-graph.test.js.map +0 -1
- package/workflow/diff/__tests__/graph-diff.test.d.ts +0 -2
- package/workflow/diff/__tests__/graph-diff.test.d.ts.map +0 -1
- package/workflow/diff/__tests__/graph-diff.test.js +0 -196
- package/workflow/diff/__tests__/graph-diff.test.js.map +0 -1
- package/workflow/execution-comparison/__tests__/derive-execution-comparison.test.d.ts +0 -2
- package/workflow/execution-comparison/__tests__/derive-execution-comparison.test.d.ts.map +0 -1
- package/workflow/execution-comparison/__tests__/derive-execution-comparison.test.js +0 -263
- package/workflow/execution-comparison/__tests__/derive-execution-comparison.test.js.map +0 -1
- package/workflow/execution-history/__tests__/derive-execution-row.test.d.ts +0 -2
- package/workflow/execution-history/__tests__/derive-execution-row.test.d.ts.map +0 -1
- package/workflow/execution-history/__tests__/derive-execution-row.test.js +0 -276
- package/workflow/execution-history/__tests__/derive-execution-row.test.js.map +0 -1
- package/workflow/execution-history/__tests__/derive-failure-analysis.test.d.ts +0 -2
- package/workflow/execution-history/__tests__/derive-failure-analysis.test.d.ts.map +0 -1
- package/workflow/execution-history/__tests__/derive-failure-analysis.test.js +0 -132
- package/workflow/execution-history/__tests__/derive-failure-analysis.test.js.map +0 -1
- package/workflow/layout/__tests__/dagre-layout-engine.test.d.ts +0 -2
- package/workflow/layout/__tests__/dagre-layout-engine.test.d.ts.map +0 -1
- package/workflow/layout/__tests__/dagre-layout-engine.test.js +0 -105
- package/workflow/layout/__tests__/dagre-layout-engine.test.js.map +0 -1
- package/workflow/layout/__tests__/layout-postprocessor.test.d.ts +0 -2
- package/workflow/layout/__tests__/layout-postprocessor.test.d.ts.map +0 -1
- package/workflow/layout/__tests__/layout-postprocessor.test.js +0 -123
- package/workflow/layout/__tests__/layout-postprocessor.test.js.map +0 -1
- package/workflow/layout/__tests__/port-assignment.test.d.ts +0 -2
- package/workflow/layout/__tests__/port-assignment.test.d.ts.map +0 -1
- package/workflow/layout/__tests__/port-assignment.test.js +0 -200
- package/workflow/layout/__tests__/port-assignment.test.js.map +0 -1
- package/workflow/layout/__tests__/registry-dimensions.test.d.ts +0 -2
- package/workflow/layout/__tests__/registry-dimensions.test.d.ts.map +0 -1
- package/workflow/layout/__tests__/registry-dimensions.test.js +0 -104
- package/workflow/layout/__tests__/registry-dimensions.test.js.map +0 -1
- package/workflow/layout/__tests__/useElkLayoutEngine.test.d.ts +0 -2
- package/workflow/layout/__tests__/useElkLayoutEngine.test.d.ts.map +0 -1
- package/workflow/layout/__tests__/useElkLayoutEngine.test.js +0 -106
- package/workflow/layout/__tests__/useElkLayoutEngine.test.js.map +0 -1
- package/workflow/layout/__tests__/workflow-preprocessor.test.d.ts +0 -2
- package/workflow/layout/__tests__/workflow-preprocessor.test.d.ts.map +0 -1
- package/workflow/layout/__tests__/workflow-preprocessor.test.js +0 -138
- package/workflow/layout/__tests__/workflow-preprocessor.test.js.map +0 -1
- package/workflow/picker/__tests__/compatibility.test.d.ts +0 -2
- package/workflow/picker/__tests__/compatibility.test.d.ts.map +0 -1
- package/workflow/picker/__tests__/compatibility.test.js +0 -93
- package/workflow/picker/__tests__/compatibility.test.js.map +0 -1
- package/workflow/picker/__tests__/insertion-context.test.d.ts +0 -2
- package/workflow/picker/__tests__/insertion-context.test.d.ts.map +0 -1
- package/workflow/picker/__tests__/insertion-context.test.js +0 -67
- package/workflow/picker/__tests__/insertion-context.test.js.map +0 -1
- package/workflow/picker/__tests__/recents.test.d.ts +0 -2
- package/workflow/picker/__tests__/recents.test.d.ts.map +0 -1
- package/workflow/picker/__tests__/recents.test.js +0 -81
- package/workflow/picker/__tests__/recents.test.js.map +0 -1
- package/workflow/picker/__tests__/suggestions.test.d.ts +0 -2
- package/workflow/picker/__tests__/suggestions.test.d.ts.map +0 -1
- package/workflow/picker/__tests__/suggestions.test.js +0 -111
- package/workflow/picker/__tests__/suggestions.test.js.map +0 -1
- package/workflow/templates/__tests__/derive-template-metadata.test.d.ts +0 -2
- package/workflow/templates/__tests__/derive-template-metadata.test.d.ts.map +0 -1
- package/workflow/templates/__tests__/derive-template-metadata.test.js +0 -317
- package/workflow/templates/__tests__/derive-template-metadata.test.js.map +0 -1
- package/workflow/templates/__tests__/workflow-template-gallery.test.d.ts +0 -2
- package/workflow/templates/__tests__/workflow-template-gallery.test.d.ts.map +0 -1
- package/workflow/templates/__tests__/workflow-template-gallery.test.js +0 -119
- package/workflow/templates/__tests__/workflow-template-gallery.test.js.map +0 -1
- package/workspace/__tests__/WorkspaceEditor-initialPanel.test.d.ts +0 -2
- package/workspace/__tests__/WorkspaceEditor-initialPanel.test.d.ts.map +0 -1
- package/workspace/__tests__/WorkspaceEditor-initialPanel.test.js +0 -82
- package/workspace/__tests__/WorkspaceEditor-initialPanel.test.js.map +0 -1
- package/workspace/__tests__/useWorkspaceEntries-stability.test.d.ts +0 -2
- package/workspace/__tests__/useWorkspaceEntries-stability.test.d.ts.map +0 -1
- package/workspace/__tests__/useWorkspaceEntries-stability.test.js +0 -57
- package/workspace/__tests__/useWorkspaceEntries-stability.test.js.map +0 -1
- package/workspace/__tests__/useWorkspaceFiles.test.d.ts +0 -2
- package/workspace/__tests__/useWorkspaceFiles.test.d.ts.map +0 -1
- package/workspace/__tests__/useWorkspaceFiles.test.js +0 -128
- package/workspace/__tests__/useWorkspaceFiles.test.js.map +0 -1
- package/workspace/__tests__/useWorkspaceSources.test.d.ts +0 -2
- package/workspace/__tests__/useWorkspaceSources.test.d.ts.map +0 -1
- package/workspace/__tests__/useWorkspaceSources.test.js +0 -98
- package/workspace/__tests__/useWorkspaceSources.test.js.map +0 -1
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
2
|
+
import { renderHook, act, waitFor } from "@testing-library/react";
|
|
3
|
+
import type { ReactNode } from "react";
|
|
4
|
+
import type { Stigmer } from "@stigmer/sdk";
|
|
5
|
+
import { StigmerContext } from "../../context";
|
|
6
|
+
import { useCreateAgentInstance } from "../useCreateAgentInstance";
|
|
7
|
+
import { useUpdateAgentInstance } from "../useUpdateAgentInstance";
|
|
8
|
+
import { useDeleteAgentInstance } from "../useDeleteAgentInstance";
|
|
9
|
+
import { useAgentInstances } from "../useAgentInstances";
|
|
10
|
+
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Helpers
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
function makeInstance(id = "ain-001") {
|
|
16
|
+
return {
|
|
17
|
+
metadata: { id, name: "test-instance", slug: "test-instance", org: "org-1" },
|
|
18
|
+
spec: { agentId: "agent-001", description: "Test", environmentRefs: [] },
|
|
19
|
+
} as any;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const mockCreate = vi.fn();
|
|
23
|
+
const mockUpdate = vi.fn();
|
|
24
|
+
const mockDelete = vi.fn();
|
|
25
|
+
const mockGetByAgent = vi.fn();
|
|
26
|
+
|
|
27
|
+
function makeMockClient(): Stigmer {
|
|
28
|
+
return {
|
|
29
|
+
agentInstance: {
|
|
30
|
+
create: mockCreate,
|
|
31
|
+
update: mockUpdate,
|
|
32
|
+
delete: mockDelete,
|
|
33
|
+
getByAgent: mockGetByAgent,
|
|
34
|
+
},
|
|
35
|
+
} as unknown as Stigmer;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function createWrapper(client: Stigmer) {
|
|
39
|
+
return function Wrapper({ children }: { children: ReactNode }) {
|
|
40
|
+
return (
|
|
41
|
+
<StigmerContext.Provider value={client}>
|
|
42
|
+
{children}
|
|
43
|
+
</StigmerContext.Provider>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
beforeEach(() => {
|
|
49
|
+
vi.clearAllMocks();
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
// useCreateAgentInstance
|
|
54
|
+
// ---------------------------------------------------------------------------
|
|
55
|
+
|
|
56
|
+
describe("useCreateAgentInstance", () => {
|
|
57
|
+
it("returns created instance on success", async () => {
|
|
58
|
+
const instance = makeInstance();
|
|
59
|
+
mockCreate.mockResolvedValueOnce(instance);
|
|
60
|
+
|
|
61
|
+
const { result } = renderHook(() => useCreateAgentInstance(), {
|
|
62
|
+
wrapper: createWrapper(makeMockClient()),
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
let created: any;
|
|
66
|
+
await act(async () => {
|
|
67
|
+
created = await result.current.create({
|
|
68
|
+
name: "test-instance",
|
|
69
|
+
org: "org-1",
|
|
70
|
+
agentId: "agent-001",
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
expect(created).toBe(instance);
|
|
75
|
+
expect(result.current.isCreating).toBe(false);
|
|
76
|
+
expect(result.current.error).toBeNull();
|
|
77
|
+
expect(mockCreate).toHaveBeenCalledTimes(1);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it("sets error and re-throws on failure", async () => {
|
|
81
|
+
mockCreate.mockRejectedValueOnce(new Error("Create failed"));
|
|
82
|
+
|
|
83
|
+
const { result } = renderHook(() => useCreateAgentInstance(), {
|
|
84
|
+
wrapper: createWrapper(makeMockClient()),
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
await act(async () => {
|
|
88
|
+
await expect(
|
|
89
|
+
result.current.create({ name: "x", org: "org-1", agentId: "agent-001" }),
|
|
90
|
+
).rejects.toThrow("Create failed");
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
expect(result.current.error!.message).toBe("Create failed");
|
|
94
|
+
expect(result.current.isCreating).toBe(false);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
// ---------------------------------------------------------------------------
|
|
99
|
+
// useUpdateAgentInstance
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
|
|
102
|
+
describe("useUpdateAgentInstance", () => {
|
|
103
|
+
it("returns updated instance on success", async () => {
|
|
104
|
+
const instance = makeInstance();
|
|
105
|
+
mockUpdate.mockResolvedValueOnce(instance);
|
|
106
|
+
|
|
107
|
+
const { result } = renderHook(() => useUpdateAgentInstance(), {
|
|
108
|
+
wrapper: createWrapper(makeMockClient()),
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
let updated: any;
|
|
112
|
+
await act(async () => {
|
|
113
|
+
updated = await result.current.update({
|
|
114
|
+
name: "test-instance",
|
|
115
|
+
org: "org-1",
|
|
116
|
+
agentId: "agent-001",
|
|
117
|
+
description: "Updated",
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
expect(updated).toBe(instance);
|
|
122
|
+
expect(result.current.isUpdating).toBe(false);
|
|
123
|
+
expect(mockUpdate).toHaveBeenCalledTimes(1);
|
|
124
|
+
});
|
|
125
|
+
|
|
126
|
+
it("sets error and re-throws on failure", async () => {
|
|
127
|
+
mockUpdate.mockRejectedValueOnce(new Error("Update failed"));
|
|
128
|
+
|
|
129
|
+
const { result } = renderHook(() => useUpdateAgentInstance(), {
|
|
130
|
+
wrapper: createWrapper(makeMockClient()),
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
await act(async () => {
|
|
134
|
+
await expect(
|
|
135
|
+
result.current.update({ name: "x", org: "o", agentId: "a" }),
|
|
136
|
+
).rejects.toThrow("Update failed");
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
expect(result.current.error!.message).toBe("Update failed");
|
|
140
|
+
expect(result.current.isUpdating).toBe(false);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
// ---------------------------------------------------------------------------
|
|
145
|
+
// useDeleteAgentInstance
|
|
146
|
+
// ---------------------------------------------------------------------------
|
|
147
|
+
|
|
148
|
+
describe("useDeleteAgentInstance", () => {
|
|
149
|
+
it("returns deleted instance on success", async () => {
|
|
150
|
+
const instance = makeInstance();
|
|
151
|
+
mockDelete.mockResolvedValueOnce(instance);
|
|
152
|
+
|
|
153
|
+
const { result } = renderHook(() => useDeleteAgentInstance(), {
|
|
154
|
+
wrapper: createWrapper(makeMockClient()),
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
let deleted: any;
|
|
158
|
+
await act(async () => {
|
|
159
|
+
deleted = await result.current.deleteInstance("ain-001");
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
expect(deleted).toBe(instance);
|
|
163
|
+
expect(result.current.isDeleting).toBe(false);
|
|
164
|
+
expect(mockDelete).toHaveBeenCalledWith("ain-001");
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
it("sets error and re-throws on failure", async () => {
|
|
168
|
+
mockDelete.mockRejectedValueOnce(new Error("Delete failed"));
|
|
169
|
+
|
|
170
|
+
const { result } = renderHook(() => useDeleteAgentInstance(), {
|
|
171
|
+
wrapper: createWrapper(makeMockClient()),
|
|
172
|
+
});
|
|
173
|
+
|
|
174
|
+
await act(async () => {
|
|
175
|
+
await expect(
|
|
176
|
+
result.current.deleteInstance("ain-001"),
|
|
177
|
+
).rejects.toThrow("Delete failed");
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
expect(result.current.error!.message).toBe("Delete failed");
|
|
181
|
+
expect(result.current.isDeleting).toBe(false);
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
// ---------------------------------------------------------------------------
|
|
186
|
+
// useAgentInstances — reads list.items (NOT workflow's .entries)
|
|
187
|
+
// ---------------------------------------------------------------------------
|
|
188
|
+
|
|
189
|
+
describe("useAgentInstances", () => {
|
|
190
|
+
it("lists instances from getByAgent .items", async () => {
|
|
191
|
+
const instances = [makeInstance("ain-1"), makeInstance("ain-2")];
|
|
192
|
+
mockGetByAgent.mockResolvedValueOnce({ items: instances, totalCount: 2 });
|
|
193
|
+
|
|
194
|
+
const { result } = renderHook(() => useAgentInstances("agent-001"), {
|
|
195
|
+
wrapper: createWrapper(makeMockClient()),
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
await waitFor(() => expect(result.current.isLoading).toBe(false));
|
|
199
|
+
|
|
200
|
+
expect(result.current.instances).toHaveLength(2);
|
|
201
|
+
expect(result.current.instances[0]?.metadata?.id).toBe("ain-1");
|
|
202
|
+
expect(mockGetByAgent).toHaveBeenCalledTimes(1);
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
it("does not fetch when agentId is null", async () => {
|
|
206
|
+
const { result } = renderHook(() => useAgentInstances(null), {
|
|
207
|
+
wrapper: createWrapper(makeMockClient()),
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
expect(result.current.instances).toEqual([]);
|
|
211
|
+
expect(mockGetByAgent).not.toHaveBeenCalled();
|
|
212
|
+
});
|
|
213
|
+
});
|
|
@@ -2,10 +2,25 @@ export { useAgentInstance } from "./useAgentInstance";
|
|
|
2
2
|
export type { UseAgentInstanceReturn } from "./useAgentInstance";
|
|
3
3
|
export { useAgentInstanceList } from "./useAgentInstanceList";
|
|
4
4
|
export type { UseAgentInstanceListReturn } from "./useAgentInstanceList";
|
|
5
|
+
export { useAgentInstances } from "./useAgentInstances";
|
|
6
|
+
export type { UseAgentInstancesReturn } from "./useAgentInstances";
|
|
5
7
|
export { useCreateAgentInstance } from "./useCreateAgentInstance";
|
|
6
8
|
export type { UseCreateAgentInstanceReturn } from "./useCreateAgentInstance";
|
|
9
|
+
export { useUpdateAgentInstance } from "./useUpdateAgentInstance";
|
|
10
|
+
export type { UseUpdateAgentInstanceReturn } from "./useUpdateAgentInstance";
|
|
11
|
+
export { useDeleteAgentInstance } from "./useDeleteAgentInstance";
|
|
12
|
+
export type { UseDeleteAgentInstanceReturn } from "./useDeleteAgentInstance";
|
|
7
13
|
export { usePersonalAgentInstance } from "./usePersonalAgentInstance";
|
|
8
14
|
export type {
|
|
9
15
|
GetOrCreatePersonalInstanceInput,
|
|
10
16
|
UsePersonalAgentInstanceReturn,
|
|
11
17
|
} from "./usePersonalAgentInstance";
|
|
18
|
+
|
|
19
|
+
export { AgentInstanceList } from "./AgentInstanceList";
|
|
20
|
+
export type { AgentInstanceListProps } from "./AgentInstanceList";
|
|
21
|
+
export { AgentInstanceEmptyState } from "./AgentInstanceEmptyState";
|
|
22
|
+
export type { AgentInstanceEmptyStateProps } from "./AgentInstanceEmptyState";
|
|
23
|
+
export { CreateAgentInstanceDialog } from "./CreateAgentInstanceDialog";
|
|
24
|
+
export type { CreateAgentInstanceDialogProps } from "./CreateAgentInstanceDialog";
|
|
25
|
+
export { AgentInstanceDetailPanel } from "./AgentInstanceDetailPanel";
|
|
26
|
+
export type { AgentInstanceDetailPanelProps } from "./AgentInstanceDetailPanel";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import type { AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
|
|
4
|
+
import { create } from "@bufbuild/protobuf";
|
|
5
|
+
import { GetAgentInstancesByAgentRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/io_pb";
|
|
6
|
+
import { useStigmer } from "../hooks";
|
|
7
|
+
import { useFetch } from "../internal/useFetch";
|
|
8
|
+
|
|
9
|
+
/** Return value of {@link useAgentInstances}. */
|
|
10
|
+
export interface UseAgentInstancesReturn {
|
|
11
|
+
/** Instances for the given agent, or empty array while loading. */
|
|
12
|
+
readonly instances: readonly AgentInstance[];
|
|
13
|
+
/** `true` while the initial fetch or a refetch is in flight. */
|
|
14
|
+
readonly isLoading: boolean;
|
|
15
|
+
/** `true` while a background refetch is in flight and stale data is shown. */
|
|
16
|
+
readonly isRefetching: boolean;
|
|
17
|
+
/** Error from the last failed request, or `null` when healthy. */
|
|
18
|
+
readonly error: Error | null;
|
|
19
|
+
/** Discard cached data and re-fetch instances from the server. */
|
|
20
|
+
readonly refetch: () => void;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Data hook that fetches all instances for a specific agent.
|
|
25
|
+
*
|
|
26
|
+
* Wraps `stigmer.agentInstance.getByAgent()` with loading and error
|
|
27
|
+
* state management. Used on the Agent detail page "Instances" tab to
|
|
28
|
+
* show environment-bound deployments of the agent blueprint.
|
|
29
|
+
*
|
|
30
|
+
* Pass `null` as `agentId` to skip fetching (stable no-op).
|
|
31
|
+
*
|
|
32
|
+
* Note: the `getByAgent` RPC returns an `AgentInstanceList` whose
|
|
33
|
+
* entries live under `items` (unlike WorkflowInstance, which uses
|
|
34
|
+
* `entries`).
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```tsx
|
|
38
|
+
* const { instances, isLoading } = useAgentInstances(agent.metadata?.id);
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export function useAgentInstances(
|
|
42
|
+
agentId: string | null | undefined,
|
|
43
|
+
): UseAgentInstancesReturn {
|
|
44
|
+
const stigmer = useStigmer();
|
|
45
|
+
|
|
46
|
+
const fetchFn = agentId
|
|
47
|
+
? async () => {
|
|
48
|
+
const resp = await stigmer.agentInstance.getByAgent(
|
|
49
|
+
create(GetAgentInstancesByAgentRequestSchema, {
|
|
50
|
+
agentId,
|
|
51
|
+
}),
|
|
52
|
+
);
|
|
53
|
+
return resp.items ? [...resp.items] : [];
|
|
54
|
+
}
|
|
55
|
+
: null;
|
|
56
|
+
|
|
57
|
+
const {
|
|
58
|
+
data: instances,
|
|
59
|
+
isLoading,
|
|
60
|
+
isRefetching,
|
|
61
|
+
error,
|
|
62
|
+
refetch,
|
|
63
|
+
} = useFetch<readonly AgentInstance[]>(fetchFn, [agentId, stigmer], []);
|
|
64
|
+
|
|
65
|
+
return { instances, isLoading, isRefetching, error, refetch };
|
|
66
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import type { AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
|
|
5
|
+
import { useStigmer } from "../hooks";
|
|
6
|
+
import { toError } from "../internal/toError";
|
|
7
|
+
|
|
8
|
+
/** Return value of {@link useDeleteAgentInstance}. */
|
|
9
|
+
export interface UseDeleteAgentInstanceReturn {
|
|
10
|
+
/**
|
|
11
|
+
* Delete an agent instance by ID. Returns the deleted resource.
|
|
12
|
+
*
|
|
13
|
+
* Deleting an instance removes its configuration and environment
|
|
14
|
+
* bindings. Sessions already started against it (and their execution
|
|
15
|
+
* history) are preserved — deletion does not cascade to sessions.
|
|
16
|
+
*/
|
|
17
|
+
readonly deleteInstance: (id: string) => Promise<AgentInstance>;
|
|
18
|
+
/** `true` while the delete request is in flight. */
|
|
19
|
+
readonly isDeleting: boolean;
|
|
20
|
+
/** Error from the last failed delete, or `null` when healthy. */
|
|
21
|
+
readonly error: Error | null;
|
|
22
|
+
/** Reset `error` to `null`. */
|
|
23
|
+
readonly clearError: () => void;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Mutation hook that deletes an AgentInstance resource.
|
|
28
|
+
*
|
|
29
|
+
* Wraps `stigmer.agentInstance.delete()` with loading/error state.
|
|
30
|
+
* The caller is responsible for handling post-delete UI updates
|
|
31
|
+
* (e.g., refreshing the instance list, closing a detail panel).
|
|
32
|
+
*
|
|
33
|
+
* Unlike WorkflowInstance, deletion does **not** cascade to runtime
|
|
34
|
+
* resources: sessions previously started against the instance and
|
|
35
|
+
* their execution history remain intact. The confirmation UI copy
|
|
36
|
+
* should reflect this.
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* const { deleteInstance, isDeleting } = useDeleteAgentInstance();
|
|
41
|
+
*
|
|
42
|
+
* const handleDelete = async () => {
|
|
43
|
+
* await deleteInstance(instance.metadata.id);
|
|
44
|
+
* refetch(); // refresh list after deletion
|
|
45
|
+
* };
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export function useDeleteAgentInstance(): UseDeleteAgentInstanceReturn {
|
|
49
|
+
const stigmer = useStigmer();
|
|
50
|
+
const [isDeleting, setIsDeleting] = useState(false);
|
|
51
|
+
const [error, setError] = useState<Error | null>(null);
|
|
52
|
+
|
|
53
|
+
const clearError = useCallback(() => setError(null), []);
|
|
54
|
+
|
|
55
|
+
const deleteInstance = useCallback(
|
|
56
|
+
async (id: string): Promise<AgentInstance> => {
|
|
57
|
+
setIsDeleting(true);
|
|
58
|
+
setError(null);
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
return await stigmer.agentInstance.delete(id);
|
|
62
|
+
} catch (err) {
|
|
63
|
+
setError(toError(err));
|
|
64
|
+
throw err;
|
|
65
|
+
} finally {
|
|
66
|
+
setIsDeleting(false);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
[stigmer],
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
return { deleteInstance, isDeleting, error, clearError };
|
|
73
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useState } from "react";
|
|
4
|
+
import type { AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
|
|
5
|
+
import type { AgentInstanceInput } from "@stigmer/sdk";
|
|
6
|
+
import { useStigmer } from "../hooks";
|
|
7
|
+
import { toError } from "../internal/toError";
|
|
8
|
+
|
|
9
|
+
/** Return value of {@link useUpdateAgentInstance}. */
|
|
10
|
+
export interface UseUpdateAgentInstanceReturn {
|
|
11
|
+
/** Update an existing agent instance with a full input. Returns the updated resource. */
|
|
12
|
+
readonly update: (input: AgentInstanceInput) => Promise<AgentInstance>;
|
|
13
|
+
/** `true` while the update RPC is in flight. */
|
|
14
|
+
readonly isUpdating: boolean;
|
|
15
|
+
/** Error from the last failed update, or `null` when healthy. */
|
|
16
|
+
readonly error: Error | null;
|
|
17
|
+
/** Clear the error state. */
|
|
18
|
+
readonly clearError: () => void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Mutation hook that updates an existing AgentInstance resource.
|
|
23
|
+
*
|
|
24
|
+
* Wraps `stigmer.agentInstance.update()` with loading/error state.
|
|
25
|
+
* The caller is responsible for refreshing the instance after a
|
|
26
|
+
* successful update (e.g., via `refetch` from `useAgentInstances` or
|
|
27
|
+
* `useAgentInstance`).
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* const { update, isUpdating } = useUpdateAgentInstance();
|
|
32
|
+
*
|
|
33
|
+
* const handleSave = async () => {
|
|
34
|
+
* await update({
|
|
35
|
+
* ...agentInstanceToInput(instance),
|
|
36
|
+
* environmentRefs: newRefs,
|
|
37
|
+
* });
|
|
38
|
+
* refetch();
|
|
39
|
+
* };
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function useUpdateAgentInstance(): UseUpdateAgentInstanceReturn {
|
|
43
|
+
const stigmer = useStigmer();
|
|
44
|
+
const [isUpdating, setIsUpdating] = useState(false);
|
|
45
|
+
const [error, setError] = useState<Error | null>(null);
|
|
46
|
+
|
|
47
|
+
const clearError = useCallback(() => setError(null), []);
|
|
48
|
+
|
|
49
|
+
const update = useCallback(
|
|
50
|
+
async (input: AgentInstanceInput): Promise<AgentInstance> => {
|
|
51
|
+
setIsUpdating(true);
|
|
52
|
+
setError(null);
|
|
53
|
+
|
|
54
|
+
try {
|
|
55
|
+
return await stigmer.agentInstance.update(input);
|
|
56
|
+
} catch (err) {
|
|
57
|
+
setError(toError(err));
|
|
58
|
+
throw err;
|
|
59
|
+
} finally {
|
|
60
|
+
setIsUpdating(false);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
[stigmer],
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
return { update, isUpdating, error, clearError };
|
|
67
|
+
}
|
|
@@ -259,6 +259,25 @@ export interface SessionComposerProps {
|
|
|
259
259
|
*/
|
|
260
260
|
readonly initialAgentRef?: ResourceRef;
|
|
261
261
|
|
|
262
|
+
/**
|
|
263
|
+
* Pre-bind the session to a specific, already-existing
|
|
264
|
+
* `AgentInstance` when the composer mounts.
|
|
265
|
+
*
|
|
266
|
+
* Requires `initialAgentRef` (the agent the instance deploys). When
|
|
267
|
+
* both are provided, the composer resolves the agent directly to this
|
|
268
|
+
* instance — skipping the environment-collection flow entirely, since
|
|
269
|
+
* the chosen instance already binds its own environment(s). The
|
|
270
|
+
* resulting resolution is `{ mode: "saved", instanceId }`, so the
|
|
271
|
+
* session is created against this exact configured deployment.
|
|
272
|
+
*
|
|
273
|
+
* This is the agent analog of running a specific WorkflowInstance: it
|
|
274
|
+
* powers the "Start session" action on an instance in the Agent detail
|
|
275
|
+
* page's Instances tab.
|
|
276
|
+
*
|
|
277
|
+
* One-time: consumed on mount; subsequent changes are ignored.
|
|
278
|
+
*/
|
|
279
|
+
readonly initialInstanceId?: string;
|
|
280
|
+
|
|
262
281
|
/**
|
|
263
282
|
* When `true`, the agent chip renders without an X (remove) button.
|
|
264
283
|
*
|
|
@@ -456,6 +475,7 @@ const SessionComposerInner = forwardRef<SessionComposerHandle, SessionComposerPr
|
|
|
456
475
|
onAgentRefChange,
|
|
457
476
|
onAgentResolutionChange,
|
|
458
477
|
initialAgentRef,
|
|
478
|
+
initialInstanceId,
|
|
459
479
|
isDefaultAgent = false,
|
|
460
480
|
mcpServerUsages,
|
|
461
481
|
onMcpServerUsagesChange,
|
|
@@ -845,6 +865,29 @@ const SessionComposerInner = forwardRef<SessionComposerHandle, SessionComposerPr
|
|
|
845
865
|
],
|
|
846
866
|
);
|
|
847
867
|
|
|
868
|
+
const handleAgentSelectToInstance = useCallback(
|
|
869
|
+
async (ref: ResourceRef, instanceId: string) => {
|
|
870
|
+
try {
|
|
871
|
+
const result = await agentSetup.resolveToInstance(ref, instanceId);
|
|
872
|
+
onAgentRefChange?.(result.agentRef);
|
|
873
|
+
onAgentResolutionChange?.(result.resolution);
|
|
874
|
+
handleDisplayNameResolved(
|
|
875
|
+
`${result.agentRef.org}/${result.agentRef.slug}`,
|
|
876
|
+
result.agentName,
|
|
877
|
+
);
|
|
878
|
+
setConfigOpen(false);
|
|
879
|
+
} catch {
|
|
880
|
+
// Error is captured by agentSetup.state.error — displayed inline.
|
|
881
|
+
}
|
|
882
|
+
},
|
|
883
|
+
[
|
|
884
|
+
agentSetup,
|
|
885
|
+
onAgentRefChange,
|
|
886
|
+
onAgentResolutionChange,
|
|
887
|
+
handleDisplayNameResolved,
|
|
888
|
+
],
|
|
889
|
+
);
|
|
890
|
+
|
|
848
891
|
const handleEnvFormSubmit = useCallback(
|
|
849
892
|
async (
|
|
850
893
|
values: Record<string, EnvVarInput>,
|
|
@@ -879,6 +922,9 @@ const SessionComposerInner = forwardRef<SessionComposerHandle, SessionComposerPr
|
|
|
879
922
|
const handleAgentSelectRef = useRef(handleAgentSelect);
|
|
880
923
|
handleAgentSelectRef.current = handleAgentSelect;
|
|
881
924
|
|
|
925
|
+
const handleAgentSelectToInstanceRef = useRef(handleAgentSelectToInstance);
|
|
926
|
+
handleAgentSelectToInstanceRef.current = handleAgentSelectToInstance;
|
|
927
|
+
|
|
882
928
|
const initialAgentHandled = useRef(false);
|
|
883
929
|
|
|
884
930
|
useEffect(() => {
|
|
@@ -889,7 +935,13 @@ const SessionComposerInner = forwardRef<SessionComposerHandle, SessionComposerPr
|
|
|
889
935
|
let cancelled = false;
|
|
890
936
|
initialAgentHandled.current = true;
|
|
891
937
|
|
|
892
|
-
|
|
938
|
+
// When an explicit instance is provided, bind directly to it
|
|
939
|
+
// (skips env collection); otherwise run the full resolution flow.
|
|
940
|
+
const run = initialInstanceId
|
|
941
|
+
? handleAgentSelectToInstanceRef.current(initialAgentRef, initialInstanceId)
|
|
942
|
+
: handleAgentSelectRef.current(initialAgentRef);
|
|
943
|
+
|
|
944
|
+
run.catch(() => {
|
|
893
945
|
if (!cancelled) {
|
|
894
946
|
initialAgentHandled.current = false;
|
|
895
947
|
}
|
|
@@ -898,7 +950,7 @@ const SessionComposerInner = forwardRef<SessionComposerHandle, SessionComposerPr
|
|
|
898
950
|
return () => {
|
|
899
951
|
cancelled = true;
|
|
900
952
|
};
|
|
901
|
-
}, [initialAgentRef, showAgent, org]);
|
|
953
|
+
}, [initialAgentRef, initialInstanceId, showAgent, org]);
|
|
902
954
|
|
|
903
955
|
// ---------------------------------------------------------------------------
|
|
904
956
|
// Initial agent: auto-open Configure > Agent when env vars are needed
|
|
@@ -5,7 +5,7 @@ import type { PendingApproval } from "@stigmer/protos/ai/stigmer/agentic/agentex
|
|
|
5
5
|
import { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
6
6
|
import { cn } from "@stigmer/theme";
|
|
7
7
|
import {
|
|
8
|
-
|
|
8
|
+
resolveToolCategoryFromKind,
|
|
9
9
|
extractPrimaryArgFromPreview,
|
|
10
10
|
} from "./tool-categories";
|
|
11
11
|
import { CATEGORY_ICON } from "./ToolCallItem";
|
|
@@ -74,7 +74,10 @@ export const ApprovalCard = memo(function ApprovalCard({
|
|
|
74
74
|
}
|
|
75
75
|
}, [isSubmitting]);
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
// Prefer the denormalized wire tool_kind (populated by the server-side
|
|
78
|
+
// PendingApproval projection); fall back to the name for legacy executions.
|
|
79
|
+
const categoryInfo = resolveToolCategoryFromKind(
|
|
80
|
+
pendingApproval.toolKind,
|
|
78
81
|
pendingApproval.toolName,
|
|
79
82
|
pendingApproval.mcpServerSlug,
|
|
80
83
|
);
|
|
@@ -182,6 +185,18 @@ export const ApprovalCard = memo(function ApprovalCard({
|
|
|
182
185
|
variant="approve"
|
|
183
186
|
cursorTarget="approve-button"
|
|
184
187
|
/>
|
|
188
|
+
{/* Subordinate escalation: approve this call and stop asking for the
|
|
189
|
+
rest of the run. Kept visually quieter than the primary Approve so
|
|
190
|
+
it never competes with the per-call decision the user is making. */}
|
|
191
|
+
<ActionButton
|
|
192
|
+
label="Approve & don't ask again"
|
|
193
|
+
action={ApprovalAction.APPROVE_ALL}
|
|
194
|
+
activeAction={activeAction}
|
|
195
|
+
isSubmitting={isSubmitting}
|
|
196
|
+
onClick={handleAction}
|
|
197
|
+
variant="approveAll"
|
|
198
|
+
cursorTarget="approve-all-button"
|
|
199
|
+
/>
|
|
185
200
|
<ActionButton
|
|
186
201
|
label="Skip"
|
|
187
202
|
action={ApprovalAction.SKIP}
|
|
@@ -222,7 +237,7 @@ function ActionButton({
|
|
|
222
237
|
activeAction: ApprovalAction | null;
|
|
223
238
|
isSubmitting: boolean;
|
|
224
239
|
onClick: (action: ApprovalAction) => void;
|
|
225
|
-
variant: "approve" | "skip" | "reject";
|
|
240
|
+
variant: "approve" | "approveAll" | "skip" | "reject";
|
|
226
241
|
cursorTarget?: string;
|
|
227
242
|
}) {
|
|
228
243
|
const isActive = activeAction === action;
|
|
@@ -233,6 +248,10 @@ function ActionButton({
|
|
|
233
248
|
"bg-success text-success-foreground hover:bg-success/90",
|
|
234
249
|
"disabled:bg-success/50 disabled:text-success-foreground/70",
|
|
235
250
|
),
|
|
251
|
+
approveAll: cn(
|
|
252
|
+
"text-success hover:bg-success/10",
|
|
253
|
+
"disabled:text-success/50",
|
|
254
|
+
),
|
|
236
255
|
skip: cn(
|
|
237
256
|
"border border-border bg-background text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
238
257
|
"disabled:bg-muted-faint disabled:text-muted-foreground-faint",
|
|
@@ -7,6 +7,7 @@ import type { AgentMessage, ToolCall } from "@stigmer/protos/ai/stigmer/agentic/
|
|
|
7
7
|
import { AgentMessageSchema } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/message_pb";
|
|
8
8
|
import type { SubAgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/subagent_pb";
|
|
9
9
|
import type { PendingApproval } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/approval_pb";
|
|
10
|
+
import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
|
|
10
11
|
import {
|
|
11
12
|
ApprovalAction,
|
|
12
13
|
ExecutionPhase,
|
|
@@ -24,6 +25,8 @@ import { SetupProgress } from "./SetupProgress";
|
|
|
24
25
|
import { ApprovalCard } from "./ApprovalCard";
|
|
25
26
|
import { SummarizationCard } from "./SummarizationCard";
|
|
26
27
|
import { PlanCompletionCard } from "./PlanCompletionCard";
|
|
28
|
+
import { PlanArtifactCard } from "./PlanArtifactCard";
|
|
29
|
+
import { findPlanArtifact } from "../library/detect-plan-artifact";
|
|
27
30
|
import type { SummarizationEventView } from "./useContextWindow";
|
|
28
31
|
import { isInternalTool } from "./tool-categories";
|
|
29
32
|
import { FilePathContext, type FilePathContextValue } from "./FilePathContext";
|
|
@@ -169,7 +172,12 @@ export type ThreadItem =
|
|
|
169
172
|
| { readonly kind: "approval-request"; readonly pendingApproval: PendingApproval; readonly key: string }
|
|
170
173
|
| { readonly kind: "setup-progress"; readonly workspaceEntries: readonly WorkspaceEntry[]; readonly serverPhase?: string; readonly isAwaitingResponse?: boolean; readonly key: string }
|
|
171
174
|
| { readonly kind: "context-compacted"; readonly event: SummarizationEventView; readonly key: string }
|
|
172
|
-
| {
|
|
175
|
+
| {
|
|
176
|
+
readonly kind: "plan-completion";
|
|
177
|
+
readonly key: string;
|
|
178
|
+
readonly executionId: string;
|
|
179
|
+
readonly planArtifact?: ExecutionArtifact;
|
|
180
|
+
};
|
|
173
181
|
|
|
174
182
|
function hasAiMessages(execution: AgentExecution): boolean {
|
|
175
183
|
const messages = execution.status?.messages;
|
|
@@ -378,7 +386,12 @@ export function buildThreadItems(
|
|
|
378
386
|
lastPhase === ExecutionPhase.EXECUTION_COMPLETED &&
|
|
379
387
|
lastExec?.spec?.executionConfig?.interactionMode === InteractionMode.PLAN
|
|
380
388
|
) {
|
|
381
|
-
items.push({
|
|
389
|
+
items.push({
|
|
390
|
+
kind: "plan-completion",
|
|
391
|
+
key: "plan-completion",
|
|
392
|
+
executionId: lastExec?.metadata?.id ?? "",
|
|
393
|
+
planArtifact: findPlanArtifact(lastExec),
|
|
394
|
+
});
|
|
382
395
|
}
|
|
383
396
|
|
|
384
397
|
if (includeApprovals) {
|
|
@@ -674,7 +687,18 @@ export function ThreadItemRenderer({
|
|
|
674
687
|
case "context-compacted":
|
|
675
688
|
return <SummarizationCard event={item.event} />;
|
|
676
689
|
case "plan-completion":
|
|
677
|
-
|
|
690
|
+
// When the plan was published as an artifact, show the richer reviewable
|
|
691
|
+
// card (preview / copy / download / implement). Otherwise fall back to the
|
|
692
|
+
// bare Implement CTA (older executions, or a plan that failed to publish).
|
|
693
|
+
return item.planArtifact && item.executionId ? (
|
|
694
|
+
<PlanArtifactCard
|
|
695
|
+
executionId={item.executionId}
|
|
696
|
+
artifact={item.planArtifact}
|
|
697
|
+
onImplement={onBuildFromPlan}
|
|
698
|
+
/>
|
|
699
|
+
) : (
|
|
700
|
+
<PlanCompletionCard onImplement={onBuildFromPlan} />
|
|
701
|
+
);
|
|
678
702
|
}
|
|
679
703
|
}
|
|
680
704
|
|