@stigmer/react 0.0.53 → 0.0.54

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.
Files changed (113) hide show
  1. package/execution/ArtifactCard.d.ts +11 -1
  2. package/execution/ArtifactCard.d.ts.map +1 -1
  3. package/execution/ArtifactCard.js +22 -3
  4. package/execution/ArtifactCard.js.map +1 -1
  5. package/execution/ArtifactPreviewModal.d.ts.map +1 -1
  6. package/execution/ArtifactPreviewModal.js +1 -1
  7. package/execution/ArtifactPreviewModal.js.map +1 -1
  8. package/execution/ArtifactsWidget.d.ts +26 -19
  9. package/execution/ArtifactsWidget.d.ts.map +1 -1
  10. package/execution/ArtifactsWidget.js +24 -26
  11. package/execution/ArtifactsWidget.js.map +1 -1
  12. package/execution/MessageThread.d.ts +10 -1
  13. package/execution/MessageThread.d.ts.map +1 -1
  14. package/execution/MessageThread.js +19 -17
  15. package/execution/MessageThread.js.map +1 -1
  16. package/execution/SandboxContext.d.ts +32 -0
  17. package/execution/SandboxContext.d.ts.map +1 -0
  18. package/execution/SandboxContext.js +26 -0
  19. package/execution/SandboxContext.js.map +1 -0
  20. package/execution/ToolArgsView.d.ts.map +1 -1
  21. package/execution/ToolArgsView.js +3 -1
  22. package/execution/ToolArgsView.js.map +1 -1
  23. package/execution/ToolCallDetail.d.ts.map +1 -1
  24. package/execution/ToolCallDetail.js +3 -1
  25. package/execution/ToolCallDetail.js.map +1 -1
  26. package/execution/ToolCallItem.d.ts.map +1 -1
  27. package/execution/ToolCallItem.js +7 -1
  28. package/execution/ToolCallItem.js.map +1 -1
  29. package/execution/WriteBackCard.d.ts +34 -0
  30. package/execution/WriteBackCard.d.ts.map +1 -0
  31. package/execution/WriteBackCard.js +75 -0
  32. package/execution/WriteBackCard.js.map +1 -0
  33. package/execution/WriteBacksWidget.d.ts +49 -0
  34. package/execution/WriteBacksWidget.d.ts.map +1 -0
  35. package/execution/WriteBacksWidget.js +44 -0
  36. package/execution/WriteBacksWidget.js.map +1 -0
  37. package/execution/__tests__/file-path-resolver.test.d.ts +2 -0
  38. package/execution/__tests__/file-path-resolver.test.d.ts.map +1 -0
  39. package/execution/__tests__/file-path-resolver.test.js +180 -0
  40. package/execution/__tests__/file-path-resolver.test.js.map +1 -0
  41. package/execution/file-path-resolver.d.ts +3 -3
  42. package/execution/file-path-resolver.d.ts.map +1 -1
  43. package/execution/file-path-resolver.js +23 -12
  44. package/execution/file-path-resolver.js.map +1 -1
  45. package/execution/index.d.ts +9 -0
  46. package/execution/index.d.ts.map +1 -1
  47. package/execution/index.js +5 -0
  48. package/execution/index.js.map +1 -1
  49. package/execution/sandbox-path-normalizer.d.ts +46 -0
  50. package/execution/sandbox-path-normalizer.d.ts.map +1 -0
  51. package/execution/sandbox-path-normalizer.js +73 -0
  52. package/execution/sandbox-path-normalizer.js.map +1 -0
  53. package/execution/useArtifactContent.d.ts +5 -1
  54. package/execution/useArtifactContent.d.ts.map +1 -1
  55. package/execution/useArtifactContent.js +6 -2
  56. package/execution/useArtifactContent.js.map +1 -1
  57. package/execution/useWorkspaceWriteBacks.d.ts +40 -0
  58. package/execution/useWorkspaceWriteBacks.d.ts.map +1 -0
  59. package/execution/useWorkspaceWriteBacks.js +41 -0
  60. package/execution/useWorkspaceWriteBacks.js.map +1 -0
  61. package/github/GitHubRepoPicker.d.ts +5 -2
  62. package/github/GitHubRepoPicker.d.ts.map +1 -1
  63. package/github/GitHubRepoPicker.js +133 -36
  64. package/github/GitHubRepoPicker.js.map +1 -1
  65. package/github/index.d.ts +1 -0
  66. package/github/index.d.ts.map +1 -1
  67. package/github/index.js +1 -0
  68. package/github/index.js.map +1 -1
  69. package/github/useGitHubSearch.d.ts +20 -0
  70. package/github/useGitHubSearch.d.ts.map +1 -0
  71. package/github/useGitHubSearch.js +127 -0
  72. package/github/useGitHubSearch.js.map +1 -0
  73. package/index.d.ts +6 -6
  74. package/index.d.ts.map +1 -1
  75. package/index.js +3 -3
  76. package/index.js.map +1 -1
  77. package/package.json +4 -4
  78. package/session/index.d.ts +4 -0
  79. package/session/index.d.ts.map +1 -1
  80. package/session/index.js +2 -0
  81. package/session/index.js.map +1 -1
  82. package/session/useSessionArtifacts.d.ts +73 -0
  83. package/session/useSessionArtifacts.d.ts.map +1 -0
  84. package/session/useSessionArtifacts.js +95 -0
  85. package/session/useSessionArtifacts.js.map +1 -0
  86. package/session/useSessionWriteBacks.d.ts +56 -0
  87. package/session/useSessionWriteBacks.d.ts.map +1 -0
  88. package/session/useSessionWriteBacks.js +56 -0
  89. package/session/useSessionWriteBacks.js.map +1 -0
  90. package/src/execution/ArtifactCard.tsx +40 -0
  91. package/src/execution/ArtifactPreviewModal.tsx +2 -0
  92. package/src/execution/ArtifactsWidget.tsx +51 -43
  93. package/src/execution/MessageThread.tsx +18 -0
  94. package/src/execution/SandboxContext.ts +47 -0
  95. package/src/execution/ToolArgsView.tsx +3 -1
  96. package/src/execution/ToolCallDetail.tsx +3 -1
  97. package/src/execution/ToolCallItem.tsx +7 -1
  98. package/src/execution/WriteBackCard.tsx +210 -0
  99. package/src/execution/WriteBacksWidget.tsx +82 -0
  100. package/src/execution/__tests__/file-path-resolver.test.ts +295 -0
  101. package/src/execution/file-path-resolver.ts +24 -12
  102. package/src/execution/index.ts +13 -0
  103. package/src/execution/sandbox-path-normalizer.ts +80 -0
  104. package/src/execution/useArtifactContent.ts +6 -1
  105. package/src/execution/useWorkspaceWriteBacks.ts +56 -0
  106. package/src/github/GitHubRepoPicker.tsx +413 -108
  107. package/src/github/index.ts +5 -0
  108. package/src/github/useGitHubSearch.ts +162 -0
  109. package/src/index.ts +14 -0
  110. package/src/session/index.ts +12 -0
  111. package/src/session/useSessionArtifacts.ts +143 -0
  112. package/src/session/useSessionWriteBacks.ts +94 -0
  113. package/styles.css +1 -1
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGrC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,KAAK,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGjG,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,EAC5B,YAAY,GACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,6BAA6B,EAC7B,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAC1G,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAGrG,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,+BAA+B,EAC/B,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,4BAA4B,EAC5B,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,qCAAqC,EACrC,2BAA2B,EAC3B,iCAAiC,GAClC,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,4BAA4B,GAC7B,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,UAAU,EACV,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACL,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,6BAA6B,EAC7B,6BAA6B,EAC7B,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,oBAAoB,EACpB,wBAAwB,EACxB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,mCAAmC,EACnC,+BAA+B,EAC/B,mCAAmC,EACnC,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC9B,yBAAyB,EACzB,0BAA0B,EAC1B,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,aAAa,EACb,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAChF,YAAY,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAG5E,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,2BAA2B,EAC3B,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAGnB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,gCAAgC,EAChC,8BAA8B,EAC9B,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC"}
package/index.js CHANGED
@@ -12,9 +12,9 @@ export { MODEL_REGISTRY, DEFAULT_MODEL_ID, useModelRegistry, ModelSelector, } fr
12
12
  // Workspace — behavior hooks, data hook, and styled components
13
13
  export { useWorkspaceEntries, WorkspaceEditor, useFolderListing, FolderBrowser, WorkspaceSummary, } from "./workspace";
14
14
  // Session — data hooks, behavior hooks, utilities (Session aggregate + conversation lifecycle)
15
- export { useCreateSession, useUpdateSession, useSession, useSessionList, useSessionExecutions, useSessionConversation, useAgentRefFromSession, groupSessionsByTime, PENDING_SUBJECT, resolvedSubject, } from "./session";
15
+ export { useCreateSession, useUpdateSession, useSession, useSessionList, useSessionExecutions, useSessionConversation, useSessionArtifacts, useSessionWriteBacks, useAgentRefFromSession, groupSessionsByTime, PENDING_SUBJECT, resolvedSubject, } from "./session";
16
16
  // Execution — behavior hooks, styled components, and utilities (AgentExecution aggregate)
17
- export { isTerminalPhase, useCreateAgentExecution, useExecutionStream, useExecutionUsage, aggregateUsage, useSubmitApproval, ExecutionPhaseBadge, SetupProgress, ExecutionProgress, ExecutionCostSummary, ToolCallGroup, ToolCallDetail, McpToolDetail, parseMcpResult, formatDuration, humanizeToolName, ToolCallItem, SubAgentSection, MessageEntry, MessageThread, FollowUpInput, ApprovalCard, ArtifactCard, ArtifactContentRenderer, ArtifactPreviewModal, ArtifactsWidget, ToolArgsView, McpArgsView, McpMetadataRow, FilePathLink, FilePathContext, classifyPath, resolveGitBrowseUrl, resolvePathAction, useSessionVariables, SessionVariablesInput, useExecutionArtifacts, useArtifactContent, isTextArtifact, isArtifactExpired, formatArtifactSize, getArtifactExtension, getFileExtension, getArtifactRenderMode, } from "./execution";
17
+ export { isTerminalPhase, useCreateAgentExecution, useExecutionStream, useExecutionUsage, aggregateUsage, useSubmitApproval, ExecutionPhaseBadge, SetupProgress, ExecutionProgress, ExecutionCostSummary, ToolCallGroup, ToolCallDetail, McpToolDetail, parseMcpResult, formatDuration, humanizeToolName, ToolCallItem, SubAgentSection, MessageEntry, MessageThread, FollowUpInput, ApprovalCard, ArtifactCard, ArtifactContentRenderer, ArtifactPreviewModal, ArtifactsWidget, WriteBacksWidget, ToolArgsView, McpArgsView, McpMetadataRow, FilePathLink, FilePathContext, classifyPath, resolveGitBrowseUrl, resolvePathAction, useSessionVariables, SessionVariablesInput, useExecutionArtifacts, useArtifactContent, useWorkspaceWriteBacks, WriteBackCard, isTextArtifact, isArtifactExpired, formatArtifactSize, getArtifactExtension, getFileExtension, getArtifactRenderMode, } from "./execution";
18
18
  export { ExecutionArtifactKind } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
19
19
  // Attachment — file upload behavior hook and styled chip list
20
20
  export { useAttachments, AttachmentChipList, MAX_ATTACHMENT_BYTES, detectContentType, formatFileSize, validateAttachmentSize, } from "./attachment";
@@ -25,7 +25,7 @@ export { useMcpServer, useMcpServerCount, useMcpServerList, useMcpServerSearch,
25
25
  // Skill — data hook, count hook, list hook, search hook, picker, and detail view component
26
26
  export { useSkill, useSkillCount, useSkillList, useSkillSearch, SkillPicker, SkillDetailView, } from "./skill";
27
27
  // GitHub — OAuth connection, repo picker, and hooks
28
- export { useGitHubConnection, useGitHubRepos, GitHubRepoPicker, GITHUB_CALLBACK_MESSAGE_TYPE, } from "./github";
28
+ export { useGitHubConnection, useGitHubRepos, useGitHubSearch, GitHubRepoPicker, GITHUB_CALLBACK_MESSAGE_TYPE, } from "./github";
29
29
  // Agent — data hook, count hook, list hook, search hook, picker, detail view, env form, setup orchestration, env_spec diffing, and default agent
30
30
  export { useAgent, useAgentCount, useAgentList, useAgentSearch, AgentPicker, AgentDetailView, AgentEnvForm, diffEnvSpec, useAgentSetup, useDefaultAgent, } from "./agent";
31
31
  // Environment — data hooks, list hook, personal convenience hook, secret reveal, variable management, env var form, and styled components
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/react",
3
- "version": "0.0.53",
3
+ "version": "0.0.54",
4
4
  "description": "React provider and client hook for the Stigmer platform SDK",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -31,7 +31,7 @@
31
31
  "./styles.css": "./styles.css"
32
32
  },
33
33
  "dependencies": {
34
- "@stigmer/theme": "0.0.53",
34
+ "@stigmer/theme": "0.0.54",
35
35
  "react-markdown": "^10.1.0",
36
36
  "remark-gfm": "^4.0.1",
37
37
  "yaml": "^2.8.2"
@@ -39,8 +39,8 @@
39
39
  "peerDependencies": {
40
40
  "@base-ui/react": "^1.0.0",
41
41
  "@bufbuild/protobuf": "^2.0.0",
42
- "@stigmer/protos": "0.0.53",
43
- "@stigmer/sdk": "0.0.53",
42
+ "@stigmer/protos": "0.0.54",
43
+ "@stigmer/sdk": "0.0.54",
44
44
  "react": "^19.0.0",
45
45
  "react-dom": "^19.0.0"
46
46
  }
@@ -10,6 +10,10 @@ export { useSessionExecutions } from "./useSessionExecutions";
10
10
  export type { UseSessionExecutionsReturn } from "./useSessionExecutions";
11
11
  export { useSessionConversation } from "./useSessionConversation";
12
12
  export type { SendFollowUpOptions, UseSessionConversationReturn, } from "./useSessionConversation";
13
+ export { useSessionArtifacts } from "./useSessionArtifacts";
14
+ export type { SessionArtifactEntry, UseSessionArtifactsReturn, } from "./useSessionArtifacts";
15
+ export { useSessionWriteBacks } from "./useSessionWriteBacks";
16
+ export type { SessionWriteBackEntry, UseSessionWriteBacksReturn, } from "./useSessionWriteBacks";
13
17
  export { useAgentRefFromSession } from "./useAgentRefFromSession";
14
18
  export type { UseAgentRefFromSessionReturn } from "./useAgentRefFromSession";
15
19
  export { groupSessionsByTime } from "./group-sessions";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EACV,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EACV,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EACV,mBAAmB,EACnB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
package/session/index.js CHANGED
@@ -4,6 +4,8 @@ export { useSession } from "./useSession";
4
4
  export { useSessionList } from "./useSessionList";
5
5
  export { useSessionExecutions } from "./useSessionExecutions";
6
6
  export { useSessionConversation } from "./useSessionConversation";
7
+ export { useSessionArtifacts } from "./useSessionArtifacts";
8
+ export { useSessionWriteBacks } from "./useSessionWriteBacks";
7
9
  export { useAgentRefFromSession } from "./useAgentRefFromSession";
8
10
  export { groupSessionsByTime } from "./group-sessions";
9
11
  // Session utilities (re-exported from @stigmer/sdk)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/session/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAOtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAM5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,73 @@
1
+ import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
2
+ import type { ExecutionArtifact } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/artifact_pb";
3
+ /**
4
+ * A single artifact entry enriched with the execution context needed
5
+ * for content fetching and Apply/Push gating.
6
+ *
7
+ * The `executionId` identifies which execution produced (or last
8
+ * updated) this artifact — required by {@link useArtifactContent} and
9
+ * {@link ArtifactPreviewModal}. `isTerminal` controls whether the
10
+ * Apply CTA is enabled in the preview modal.
11
+ */
12
+ export interface SessionArtifactEntry {
13
+ readonly artifact: ExecutionArtifact;
14
+ /** ID of the execution that produced this artifact version. */
15
+ readonly executionId: string;
16
+ /** Whether the producing execution is in a terminal phase. */
17
+ readonly isTerminal: boolean;
18
+ /**
19
+ * `true` when another artifact in the deduplicated list shares the
20
+ * same display `name` but has a different `sandbox_path`. Consumers
21
+ * use this to render path context for disambiguation.
22
+ */
23
+ readonly hasNameCollision: boolean;
24
+ }
25
+ export interface UseSessionArtifactsReturn {
26
+ /** Deduplicated, alphabetically-sorted artifacts from all executions. */
27
+ readonly artifacts: readonly SessionArtifactEntry[];
28
+ /** `true` when there is at least one artifact across all executions. */
29
+ readonly hasArtifacts: boolean;
30
+ /** Total number of deduplicated artifacts. */
31
+ readonly artifactCount: number;
32
+ }
33
+ /**
34
+ * Pure derivation hook that aggregates artifacts across all executions
35
+ * in a session into a unified, deduplicated, alphabetically-sorted
36
+ * list — like a file explorer showing the conversation's output.
37
+ *
38
+ * Follows the same `useMemo`-based pattern as
39
+ * {@link useExecutionArtifacts}: no side effects, no data fetching.
40
+ *
41
+ * **Dedup semantics:** Artifacts are keyed by `sandbox_path` (the
42
+ * original filesystem path in the agent sandbox). When multiple
43
+ * executions produce an artifact at the same path, the latest
44
+ * execution's version wins — matching filesystem overwrite semantics.
45
+ *
46
+ * **Sorting:** Entries are sorted alphabetically by display `name`
47
+ * (case-insensitive). This matches the file-explorer mental model
48
+ * where users scan by filename, not by creation order.
49
+ *
50
+ * **Name collision detection:** When two artifacts share the same
51
+ * display `name` but differ in `sandbox_path`, both entries are
52
+ * flagged with `hasNameCollision: true` so consumers can render path
53
+ * context for disambiguation.
54
+ *
55
+ * @param executions - All executions for a session, in chronological
56
+ * order (as returned by `listBySession`). Pass both completed and
57
+ * active-stream executions.
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * const conv = useSessionConversation(sessionId, org);
62
+ * const allExecutions = [
63
+ * ...conv.completedExecutions,
64
+ * ...(conv.activeStreamExecution ? [conv.activeStreamExecution] : []),
65
+ * ];
66
+ * const { artifacts, hasArtifacts } = useSessionArtifacts(allExecutions);
67
+ * ```
68
+ *
69
+ * @see useExecutionArtifacts — single-execution artifact derivation
70
+ * @see ArtifactsWidget — styled component that renders this data
71
+ */
72
+ export declare function useSessionArtifacts(executions: readonly AgentExecution[]): UseSessionArtifactsReturn;
73
+ //# sourceMappingURL=useSessionArtifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessionArtifacts.d.ts","sourceRoot":"","sources":["../../src/session/useSessionArtifacts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAI1G;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,+DAA+D;IAC/D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,yBAAyB;IACxC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACpD,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,SAAS,cAAc,EAAE,GACpC,yBAAyB,CAoD3B"}
@@ -0,0 +1,95 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
4
+ import { isTerminalPhase } from "../execution/execution-phases";
5
+ /**
6
+ * Returns the dedup key for an artifact. Uses `sandbox_path` when
7
+ * available (stable filesystem identity within the session sandbox),
8
+ * falling back to `name` for older artifacts that predate the field.
9
+ */
10
+ function dedupKey(artifact) {
11
+ return artifact.sandboxPath || artifact.name;
12
+ }
13
+ /**
14
+ * Pure derivation hook that aggregates artifacts across all executions
15
+ * in a session into a unified, deduplicated, alphabetically-sorted
16
+ * list — like a file explorer showing the conversation's output.
17
+ *
18
+ * Follows the same `useMemo`-based pattern as
19
+ * {@link useExecutionArtifacts}: no side effects, no data fetching.
20
+ *
21
+ * **Dedup semantics:** Artifacts are keyed by `sandbox_path` (the
22
+ * original filesystem path in the agent sandbox). When multiple
23
+ * executions produce an artifact at the same path, the latest
24
+ * execution's version wins — matching filesystem overwrite semantics.
25
+ *
26
+ * **Sorting:** Entries are sorted alphabetically by display `name`
27
+ * (case-insensitive). This matches the file-explorer mental model
28
+ * where users scan by filename, not by creation order.
29
+ *
30
+ * **Name collision detection:** When two artifacts share the same
31
+ * display `name` but differ in `sandbox_path`, both entries are
32
+ * flagged with `hasNameCollision: true` so consumers can render path
33
+ * context for disambiguation.
34
+ *
35
+ * @param executions - All executions for a session, in chronological
36
+ * order (as returned by `listBySession`). Pass both completed and
37
+ * active-stream executions.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * const conv = useSessionConversation(sessionId, org);
42
+ * const allExecutions = [
43
+ * ...conv.completedExecutions,
44
+ * ...(conv.activeStreamExecution ? [conv.activeStreamExecution] : []),
45
+ * ];
46
+ * const { artifacts, hasArtifacts } = useSessionArtifacts(allExecutions);
47
+ * ```
48
+ *
49
+ * @see useExecutionArtifacts — single-execution artifact derivation
50
+ * @see ArtifactsWidget — styled component that renders this data
51
+ */
52
+ export function useSessionArtifacts(executions) {
53
+ return useMemo(() => {
54
+ const entryMap = new Map();
55
+ for (const execution of executions) {
56
+ const executionId = execution.metadata?.id ?? "";
57
+ const phase = execution.status?.phase ??
58
+ ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
59
+ const terminal = isTerminalPhase(phase);
60
+ for (const artifact of execution.status?.artifacts ?? []) {
61
+ const key = dedupKey(artifact);
62
+ entryMap.set(key, {
63
+ artifact,
64
+ executionId,
65
+ isTerminal: terminal,
66
+ hasNameCollision: false,
67
+ });
68
+ }
69
+ }
70
+ const entries = Array.from(entryMap.values());
71
+ entries.sort((a, b) => a.artifact.name.localeCompare(b.artifact.name, undefined, {
72
+ sensitivity: "base",
73
+ }));
74
+ // Detect name collisions: entries that share a display name but
75
+ // have different sandbox paths need path context for disambiguation.
76
+ const nameCount = new Map();
77
+ for (const entry of entries) {
78
+ const lower = entry.artifact.name.toLowerCase();
79
+ nameCount.set(lower, (nameCount.get(lower) ?? 0) + 1);
80
+ }
81
+ const result = entries.map((entry) => {
82
+ const lower = entry.artifact.name.toLowerCase();
83
+ if ((nameCount.get(lower) ?? 0) > 1) {
84
+ return { ...entry, hasNameCollision: true };
85
+ }
86
+ return entry;
87
+ });
88
+ return {
89
+ artifacts: result,
90
+ hasArtifacts: result.length > 0,
91
+ artifactCount: result.length,
92
+ };
93
+ }, [executions]);
94
+ }
95
+ //# sourceMappingURL=useSessionArtifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessionArtifacts.js","sourceRoot":"","sources":["../../src/session/useSessionArtifacts.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAkChE;;;;GAIG;AACH,SAAS,QAAQ,CAAC,QAA2B;IAC3C,OAAO,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAqC;IAErC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;QAEzD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;YACjD,MAAM,KAAK,GACT,SAAS,CAAC,MAAM,EAAE,KAAK;gBACvB,cAAc,CAAC,2BAA2B,CAAC;YAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YAExC,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC;gBACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC/B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE;oBAChB,QAAQ;oBACR,WAAW;oBACX,UAAU,EAAE,QAAQ;oBACpB,gBAAgB,EAAE,KAAK;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACpB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE;YACxD,WAAW,EAAE,MAAM;SACpB,CAAC,CACH,CAAC;QAEF,gEAAgE;QAChE,qEAAqE;QACrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,MAAM,GAA2B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO,EAAE,GAAG,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;YAC9C,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,SAAS,EAAE,MAAM;YACjB,YAAY,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;YAC/B,aAAa,EAAE,MAAM,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
2
+ import type { WorkspaceWriteBack } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/writeback_pb";
3
+ /**
4
+ * A single write-back entry enriched with the execution context that
5
+ * produced it.
6
+ *
7
+ * The `executionId` links the write-back to its originating execution
8
+ * for traceability in the UI (e.g., tooltip or detail view).
9
+ */
10
+ export interface SessionWriteBackEntry {
11
+ readonly writeBack: WorkspaceWriteBack;
12
+ /** ID of the execution that produced this write-back. */
13
+ readonly executionId: string;
14
+ }
15
+ export interface UseSessionWriteBacksReturn {
16
+ /** All write-backs from the session, ordered by workspace entry name. */
17
+ readonly writeBacks: readonly SessionWriteBackEntry[];
18
+ /** `true` when there is at least one write-back across all executions. */
19
+ readonly hasWriteBacks: boolean;
20
+ /** Total number of write-backs. */
21
+ readonly writeBackCount: number;
22
+ }
23
+ /**
24
+ * Pure derivation hook that aggregates workspace write-backs across all
25
+ * executions in a session into a flat, deduplicated list.
26
+ *
27
+ * Follows the same pattern as {@link useSessionArtifacts}: `useMemo`-based
28
+ * derivation, no side effects, no data fetching. Takes the same
29
+ * `executions` array input.
30
+ *
31
+ * **Dedup semantics:** Write-backs are keyed by `workspace_entry_name`.
32
+ * When multiple executions write back to the same workspace entry (e.g.,
33
+ * a follow-up execution on the same git repo), the latest execution's
34
+ * write-back wins — each execution creates its own branch/PR, and the
35
+ * most recent one is the one users care about.
36
+ *
37
+ * **Sorting:** Entries are sorted alphabetically by workspace entry name.
38
+ *
39
+ * @param executions - All executions for a session, in chronological
40
+ * order. Pass both completed and active-stream executions.
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * const conv = useSessionConversation(sessionId, org);
45
+ * const allExecutions = [
46
+ * ...conv.completedExecutions,
47
+ * ...(conv.activeStreamExecution ? [conv.activeStreamExecution] : []),
48
+ * ];
49
+ * const { writeBacks, hasWriteBacks } = useSessionWriteBacks(allExecutions);
50
+ * ```
51
+ *
52
+ * @see useWorkspaceWriteBacks — single-execution write-back derivation
53
+ * @see WriteBackCard — component that renders a single write-back
54
+ */
55
+ export declare function useSessionWriteBacks(executions: readonly AgentExecution[]): UseSessionWriteBacksReturn;
56
+ //# sourceMappingURL=useSessionWriteBacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessionWriteBacks.d.ts","sourceRoot":"","sources":["../../src/session/useSessionWriteBacks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mEAAmE,CAAC;AAE5G;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,0BAA0B;IACzC,yEAAyE;IACzE,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACtD,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,mCAAmC;IACnC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,SAAS,cAAc,EAAE,GACpC,0BAA0B,CA+B5B"}
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ /**
4
+ * Pure derivation hook that aggregates workspace write-backs across all
5
+ * executions in a session into a flat, deduplicated list.
6
+ *
7
+ * Follows the same pattern as {@link useSessionArtifacts}: `useMemo`-based
8
+ * derivation, no side effects, no data fetching. Takes the same
9
+ * `executions` array input.
10
+ *
11
+ * **Dedup semantics:** Write-backs are keyed by `workspace_entry_name`.
12
+ * When multiple executions write back to the same workspace entry (e.g.,
13
+ * a follow-up execution on the same git repo), the latest execution's
14
+ * write-back wins — each execution creates its own branch/PR, and the
15
+ * most recent one is the one users care about.
16
+ *
17
+ * **Sorting:** Entries are sorted alphabetically by workspace entry name.
18
+ *
19
+ * @param executions - All executions for a session, in chronological
20
+ * order. Pass both completed and active-stream executions.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * const conv = useSessionConversation(sessionId, org);
25
+ * const allExecutions = [
26
+ * ...conv.completedExecutions,
27
+ * ...(conv.activeStreamExecution ? [conv.activeStreamExecution] : []),
28
+ * ];
29
+ * const { writeBacks, hasWriteBacks } = useSessionWriteBacks(allExecutions);
30
+ * ```
31
+ *
32
+ * @see useWorkspaceWriteBacks — single-execution write-back derivation
33
+ * @see WriteBackCard — component that renders a single write-back
34
+ */
35
+ export function useSessionWriteBacks(executions) {
36
+ return useMemo(() => {
37
+ const entryMap = new Map();
38
+ for (const execution of executions) {
39
+ const executionId = execution.metadata?.id ?? "";
40
+ for (const wb of execution.status?.workspaceWriteBacks ?? []) {
41
+ entryMap.set(wb.workspaceEntryName, {
42
+ writeBack: wb,
43
+ executionId,
44
+ });
45
+ }
46
+ }
47
+ const entries = Array.from(entryMap.values());
48
+ entries.sort((a, b) => a.writeBack.workspaceEntryName.localeCompare(b.writeBack.workspaceEntryName, undefined, { sensitivity: "base" }));
49
+ return {
50
+ writeBacks: entries,
51
+ hasWriteBacks: entries.length > 0,
52
+ writeBackCount: entries.length,
53
+ };
54
+ }, [executions]);
55
+ }
56
+ //# sourceMappingURL=useSessionWriteBacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSessionWriteBacks.js","sourceRoot":"","sources":["../../src/session/useSessionWriteBacks.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AA0BhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAqC;IAErC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;QAE1D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC;YAEjD,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE,mBAAmB,IAAI,EAAE,EAAE,CAAC;gBAC7D,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,kBAAkB,EAAE;oBAClC,SAAS,EAAE,EAAE;oBACb,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAE9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACpB,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,aAAa,CAC1C,CAAC,CAAC,SAAS,CAAC,kBAAkB,EAC9B,SAAS,EACT,EAAE,WAAW,EAAE,MAAM,EAAE,CACxB,CACF,CAAC;QAEF,OAAO;YACL,UAAU,EAAE,OAAO;YACnB,aAAa,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;YACjC,cAAc,EAAE,OAAO,CAAC,MAAM;SAC/B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnB,CAAC"}
@@ -33,6 +33,16 @@ export interface ArtifactCardProps {
33
33
  * When omitted, the Preview action is not rendered.
34
34
  */
35
35
  readonly onPreview?: (artifact: ExecutionArtifact) => void;
36
+ /**
37
+ * When `true`, another artifact in the list shares the same display
38
+ * `name` but has a different `sandbox_path`. The card renders the
39
+ * parent directory from `sandbox_path` as a muted subtitle for
40
+ * disambiguation.
41
+ *
42
+ * Set by {@link ArtifactsWidget} via {@link useSessionArtifacts}.
43
+ * Defaults to `false`.
44
+ */
45
+ readonly hasNameCollision?: boolean;
36
46
  /** Additional CSS classes for the root element. */
37
47
  readonly className?: string;
38
48
  }
@@ -89,6 +99,7 @@ export function ArtifactCard({
89
99
  executionId,
90
100
  org,
91
101
  onPreview,
102
+ hasNameCollision = false,
92
103
  className,
93
104
  }: ArtifactCardProps) {
94
105
  // ---------------------------------------------------------------------------
@@ -104,6 +115,8 @@ export function ArtifactCard({
104
115
  const { content, isLoading: isContentLoading } = useArtifactContent(
105
116
  canDetectYaml ? executionId : null,
106
117
  canDetectYaml ? artifact.storageKey : null,
118
+ undefined,
119
+ artifact.contentHash || undefined,
107
120
  );
108
121
 
109
122
  const yamlDetection = useDetectStigmerResource(
@@ -134,6 +147,11 @@ export function ArtifactCard({
134
147
 
135
148
  const canPreview = !!onPreview && (isTextArtifact(artifact) || isDirectory);
136
149
 
150
+ const parentDir =
151
+ hasNameCollision && artifact.sandboxPath
152
+ ? parentDirectory(artifact.sandboxPath)
153
+ : null;
154
+
137
155
  // ---------------------------------------------------------------------------
138
156
  // Render
139
157
  // ---------------------------------------------------------------------------
@@ -154,6 +172,11 @@ export function ArtifactCard({
154
172
  {artifact.name}
155
173
  {isDirectory && "/"}
156
174
  </div>
175
+ {parentDir && (
176
+ <div className="truncate text-xs text-muted-foreground">
177
+ {parentDir}
178
+ </div>
179
+ )}
157
180
  <div className="text-xs tabular-nums text-muted-foreground">
158
181
  {formatArtifactSize(artifact.sizeBytes)}
159
182
  </div>
@@ -204,6 +227,23 @@ export function ArtifactCard({
204
227
  );
205
228
  }
206
229
 
230
+ // ---------------------------------------------------------------------------
231
+ // Helpers
232
+ // ---------------------------------------------------------------------------
233
+
234
+ /**
235
+ * Extracts a human-readable parent directory label from a sandbox path.
236
+ * Given `/workspace/configs/agent.yaml` returns `configs/`.
237
+ * Returns `null` when the path has no meaningful parent segment.
238
+ */
239
+ function parentDirectory(sandboxPath: string): string | null {
240
+ const lastSlash = sandboxPath.lastIndexOf("/");
241
+ if (lastSlash <= 0) return null;
242
+ const parent = sandboxPath.slice(0, lastSlash);
243
+ const segment = parent.slice(parent.lastIndexOf("/") + 1);
244
+ return segment ? `${segment}/` : null;
245
+ }
246
+
207
247
  // ---------------------------------------------------------------------------
208
248
  // Shared style constants
209
249
  // ---------------------------------------------------------------------------
@@ -143,6 +143,8 @@ export function ArtifactPreviewModal({
143
143
  } = useArtifactContent(
144
144
  canFetchContent ? executionId : null,
145
145
  canFetchContent ? artifact.storageKey : null,
146
+ undefined,
147
+ artifact.contentHash || undefined,
146
148
  );
147
149
 
148
150
  const yamlDetection = useDetectStigmerResource(