@stigmer/react 0.5.0 → 0.5.1
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/composer/ContextChip.d.ts +7 -2
- package/composer/ContextChip.d.ts.map +1 -1
- package/composer/ContextChip.js +2 -1
- package/composer/ContextChip.js.map +1 -1
- package/composer/SessionComposer.d.ts +11 -0
- package/composer/SessionComposer.d.ts.map +1 -1
- package/composer/SessionComposer.js +33 -4
- package/composer/SessionComposer.js.map +1 -1
- package/environment/usePersonalEnvironment.d.ts.map +1 -1
- package/environment/usePersonalEnvironment.js +1 -0
- package/environment/usePersonalEnvironment.js.map +1 -1
- package/index.d.ts +2 -2
- package/index.d.ts.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/inline-edit/InlineEditKeyValue.d.ts +5 -1
- package/inline-edit/InlineEditKeyValue.d.ts.map +1 -1
- package/inline-edit/InlineEditKeyValue.js +3 -3
- package/inline-edit/InlineEditKeyValue.js.map +1 -1
- package/internal/useFetch.js +2 -2
- package/internal/useFetch.js.map +1 -1
- package/mcp-server/McpServerDetailView.d.ts.map +1 -1
- package/mcp-server/McpServerDetailView.js +145 -46
- package/mcp-server/McpServerDetailView.js.map +1 -1
- package/models/ModelRegistryContext.d.ts +2 -0
- package/models/ModelRegistryContext.d.ts.map +1 -1
- package/models/ModelRegistryContext.js +1 -0
- package/models/ModelRegistryContext.js.map +1 -1
- package/models/ModelSelector.d.ts.map +1 -1
- package/models/ModelSelector.js +2 -2
- package/models/ModelSelector.js.map +1 -1
- package/models/__tests__/useModelRegistry.test.js +4 -3
- package/models/__tests__/useModelRegistry.test.js.map +1 -1
- package/models/useModelRegistry.d.ts +2 -0
- package/models/useModelRegistry.d.ts.map +1 -1
- package/models/useModelRegistry.js +3 -2
- package/models/useModelRegistry.js.map +1 -1
- package/package.json +4 -4
- package/provider.d.ts.map +1 -1
- package/provider.js +69 -22
- package/provider.js.map +1 -1
- package/session/__tests__/session-spec-converters.test.d.ts +2 -0
- package/session/__tests__/session-spec-converters.test.d.ts.map +1 -0
- package/session/__tests__/session-spec-converters.test.js +162 -0
- package/session/__tests__/session-spec-converters.test.js.map +1 -0
- package/session/__tests__/useNewSessionFlow.test.js +2 -2
- package/session/__tests__/useNewSessionFlow.test.js.map +1 -1
- package/session/__tests__/usePersistedModel.test.js +1 -1
- package/session/__tests__/usePersistedModel.test.js.map +1 -1
- package/session/group-sessions.d.ts +17 -0
- package/session/group-sessions.d.ts.map +1 -1
- package/session/group-sessions.js +46 -0
- package/session/group-sessions.js.map +1 -1
- package/session/index.d.ts +4 -2
- package/session/index.d.ts.map +1 -1
- package/session/index.js +2 -1
- package/session/index.js.map +1 -1
- package/session/session-spec-converters.d.ts +24 -0
- package/session/session-spec-converters.d.ts.map +1 -0
- package/session/session-spec-converters.js +72 -0
- package/session/session-spec-converters.js.map +1 -0
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +1 -56
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionPageFlow.d.ts +5 -0
- package/session/useSessionPageFlow.d.ts.map +1 -1
- package/session/useSessionPageFlow.js +20 -6
- package/session/useSessionPageFlow.js.map +1 -1
- package/session/useSessionSearch.d.ts +57 -0
- package/session/useSessionSearch.d.ts.map +1 -0
- package/session/useSessionSearch.js +94 -0
- package/session/useSessionSearch.js.map +1 -0
- package/src/composer/ContextChip.tsx +20 -11
- package/src/composer/SessionComposer.tsx +52 -3
- package/src/environment/usePersonalEnvironment.ts +1 -0
- package/src/index.ts +5 -0
- package/src/inline-edit/InlineEditKeyValue.tsx +23 -0
- package/src/internal/useFetch.ts +2 -2
- package/src/mcp-server/McpServerDetailView.tsx +429 -55
- package/src/models/ModelRegistryContext.ts +3 -0
- package/src/models/ModelSelector.tsx +25 -2
- package/src/models/__tests__/useModelRegistry.test.tsx +5 -3
- package/src/models/useModelRegistry.ts +5 -2
- package/src/provider.tsx +69 -18
- package/src/session/__tests__/session-spec-converters.test.ts +185 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +2 -2
- package/src/session/__tests__/usePersistedModel.test.tsx +1 -1
- package/src/session/group-sessions.ts +65 -0
- package/src/session/index.ts +8 -2
- package/src/session/session-spec-converters.ts +86 -0
- package/src/session/useSessionConversation.ts +5 -64
- package/src/session/useSessionPageFlow.ts +28 -7
- package/src/session/useSessionSearch.ts +149 -0
- package/styles.css +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
|
|
2
|
+
import type { McpServerUsageInput, ResourceRef, WorkspaceEntryInput } from "@stigmer/sdk";
|
|
3
|
+
/**
|
|
4
|
+
* Convert proto workspace entries back to SDK input format.
|
|
5
|
+
*
|
|
6
|
+
* Used by `useSessionConversation` (session update with replace semantics)
|
|
7
|
+
* and `useSessionPageFlow` (hydrating composer state from a loaded session).
|
|
8
|
+
*/
|
|
9
|
+
export declare function specWorkspaceToInput(spec: Session["spec"]): WorkspaceEntryInput[] | undefined;
|
|
10
|
+
/**
|
|
11
|
+
* Convert proto MCP server usages back to SDK input format.
|
|
12
|
+
*
|
|
13
|
+
* Used by `useSessionConversation` (session update with replace semantics)
|
|
14
|
+
* and `useSessionPageFlow` (hydrating composer state from a loaded session).
|
|
15
|
+
*/
|
|
16
|
+
export declare function specMcpUsagesToInput(spec: Session["spec"]): McpServerUsageInput[] | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Convert proto skill references back to SDK input format.
|
|
19
|
+
*
|
|
20
|
+
* Used by `useSessionConversation` (session update with replace semantics)
|
|
21
|
+
* and `useSessionPageFlow` (hydrating composer state from a loaded session).
|
|
22
|
+
*/
|
|
23
|
+
export declare function specSkillRefsToInput(spec: Session["spec"]): ResourceRef[] | undefined;
|
|
24
|
+
//# sourceMappingURL=session-spec-converters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-spec-converters.d.ts","sourceRoot":"","sources":["../../src/session/session-spec-converters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sDAAsD,CAAC;AACpF,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACpB,MAAM,cAAc,CAAC;AAEtB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GACpB,mBAAmB,EAAE,GAAG,SAAS,CA0BnC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GACpB,mBAAmB,EAAE,GAAG,SAAS,CAiBnC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,GACpB,WAAW,EAAE,GAAG,SAAS,CAO3B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert proto workspace entries back to SDK input format.
|
|
3
|
+
*
|
|
4
|
+
* Used by `useSessionConversation` (session update with replace semantics)
|
|
5
|
+
* and `useSessionPageFlow` (hydrating composer state from a loaded session).
|
|
6
|
+
*/
|
|
7
|
+
export function specWorkspaceToInput(spec) {
|
|
8
|
+
return spec?.workspaceEntries?.map((e) => {
|
|
9
|
+
if (e.source?.source.case === "gitRepo") {
|
|
10
|
+
const v = e.source.source.value;
|
|
11
|
+
return {
|
|
12
|
+
name: e.name || undefined,
|
|
13
|
+
source: {
|
|
14
|
+
gitRepo: {
|
|
15
|
+
url: v.url,
|
|
16
|
+
branch: v.branch || undefined,
|
|
17
|
+
commit: v.commit || undefined,
|
|
18
|
+
depth: v.depth || undefined,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (e.source?.source.case === "localPath") {
|
|
24
|
+
return {
|
|
25
|
+
name: e.name || undefined,
|
|
26
|
+
source: {
|
|
27
|
+
localPath: { path: e.source.source.value.path || undefined },
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return { name: e.name || undefined, source: {} };
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Convert proto MCP server usages back to SDK input format.
|
|
36
|
+
*
|
|
37
|
+
* Used by `useSessionConversation` (session update with replace semantics)
|
|
38
|
+
* and `useSessionPageFlow` (hydrating composer state from a loaded session).
|
|
39
|
+
*/
|
|
40
|
+
export function specMcpUsagesToInput(spec) {
|
|
41
|
+
return spec?.mcpServerUsages?.map((u) => ({
|
|
42
|
+
mcpServerRef: {
|
|
43
|
+
org: u.mcpServerRef?.org ?? "",
|
|
44
|
+
slug: u.mcpServerRef?.slug ?? "",
|
|
45
|
+
version: u.mcpServerRef?.version || undefined,
|
|
46
|
+
kind: u.mcpServerRef?.kind,
|
|
47
|
+
},
|
|
48
|
+
enabledTools: u.enabledTools?.length ? [...u.enabledTools] : undefined,
|
|
49
|
+
toolApprovalOverrides: u.toolApprovalOverrides?.length
|
|
50
|
+
? u.toolApprovalOverrides.map((o) => ({
|
|
51
|
+
toolName: o.toolName || undefined,
|
|
52
|
+
requiresApproval: o.requiresApproval || undefined,
|
|
53
|
+
message: o.message || undefined,
|
|
54
|
+
}))
|
|
55
|
+
: undefined,
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Convert proto skill references back to SDK input format.
|
|
60
|
+
*
|
|
61
|
+
* Used by `useSessionConversation` (session update with replace semantics)
|
|
62
|
+
* and `useSessionPageFlow` (hydrating composer state from a loaded session).
|
|
63
|
+
*/
|
|
64
|
+
export function specSkillRefsToInput(spec) {
|
|
65
|
+
return spec?.skillRefs?.map((r) => ({
|
|
66
|
+
org: r.org ?? "",
|
|
67
|
+
slug: r.slug ?? "",
|
|
68
|
+
version: r.version || undefined,
|
|
69
|
+
kind: r.kind,
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=session-spec-converters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-spec-converters.js","sourceRoot":"","sources":["../../src/session/session-spec-converters.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAqB;IAErB,OAAO,IAAI,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAuB,EAAE;QAC5D,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;gBACzB,MAAM,EAAE;oBACN,OAAO,EAAE;wBACP,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;wBAC7B,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;wBAC7B,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS;qBAC5B;iBACF;aACF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;gBACzB,MAAM,EAAE;oBACN,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE;iBAC7D;aACF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAqB;IAErB,OAAO,IAAI,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxC,YAAY,EAAE;YACZ,GAAG,EAAE,CAAC,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE;YAC9B,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI,IAAI,EAAE;YAChC,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,OAAO,IAAI,SAAS;YAC7C,IAAI,EAAE,CAAC,CAAC,YAAY,EAAE,IAAI;SAC3B;QACD,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QACtE,qBAAqB,EAAE,CAAC,CAAC,qBAAqB,EAAE,MAAM;YACpD,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,SAAS;gBACjC,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,IAAI,SAAS;gBACjD,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;aAChC,CAAC,CAAC;YACL,CAAC,CAAC,SAAS;KACd,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAqB;IAErB,OAAO,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,SAAS;QAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionConversation.d.ts","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kEAAkE,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;AAC9G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sDAAsD,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AACjH,OAAO,KAAK,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,4DAA4D,CAAC;AACxH,OAAO,KAAK,EAAE,oBAAoB,IAAI,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AAC9H,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionConversation.d.ts","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { useSubmitApproval } from "../execution/useSubmitApproval";
|
|
|
9
9
|
import { useSession } from "./useSession";
|
|
10
10
|
import { useSessionExecutions } from "./useSessionExecutions";
|
|
11
11
|
import { useUpdateSession } from "./useUpdateSession";
|
|
12
|
+
import { specWorkspaceToInput, specMcpUsagesToInput, specSkillRefsToInput, } from "./session-spec-converters";
|
|
12
13
|
/**
|
|
13
14
|
* Behavior hook that encapsulates the full conversation lifecycle for
|
|
14
15
|
* a session: loading data, streaming the active execution, submitting
|
|
@@ -228,60 +229,4 @@ function buildUpdateInput(session, overrides) {
|
|
|
228
229
|
skillRefs: skillRefs?.length ? skillRefs : undefined,
|
|
229
230
|
};
|
|
230
231
|
}
|
|
231
|
-
/** Convert proto workspace entries back to SDK input format. */
|
|
232
|
-
function specWorkspaceToInput(spec) {
|
|
233
|
-
return spec?.workspaceEntries?.map((e) => {
|
|
234
|
-
if (e.source?.source.case === "gitRepo") {
|
|
235
|
-
const v = e.source.source.value;
|
|
236
|
-
return {
|
|
237
|
-
name: e.name || undefined,
|
|
238
|
-
source: {
|
|
239
|
-
gitRepo: {
|
|
240
|
-
url: v.url,
|
|
241
|
-
branch: v.branch || undefined,
|
|
242
|
-
commit: v.commit || undefined,
|
|
243
|
-
depth: v.depth || undefined,
|
|
244
|
-
},
|
|
245
|
-
},
|
|
246
|
-
};
|
|
247
|
-
}
|
|
248
|
-
if (e.source?.source.case === "localPath") {
|
|
249
|
-
return {
|
|
250
|
-
name: e.name || undefined,
|
|
251
|
-
source: {
|
|
252
|
-
localPath: { path: e.source.source.value.path || undefined },
|
|
253
|
-
},
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
return { name: e.name || undefined, source: {} };
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
/** Convert proto MCP server usages back to SDK input format. */
|
|
260
|
-
function specMcpUsagesToInput(spec) {
|
|
261
|
-
return spec?.mcpServerUsages?.map((u) => ({
|
|
262
|
-
mcpServerRef: {
|
|
263
|
-
org: u.mcpServerRef?.org ?? "",
|
|
264
|
-
slug: u.mcpServerRef?.slug ?? "",
|
|
265
|
-
version: u.mcpServerRef?.version || undefined,
|
|
266
|
-
kind: u.mcpServerRef?.kind,
|
|
267
|
-
},
|
|
268
|
-
enabledTools: u.enabledTools?.length ? [...u.enabledTools] : undefined,
|
|
269
|
-
toolApprovalOverrides: u.toolApprovalOverrides?.length
|
|
270
|
-
? u.toolApprovalOverrides.map((o) => ({
|
|
271
|
-
toolName: o.toolName || undefined,
|
|
272
|
-
requiresApproval: o.requiresApproval || undefined,
|
|
273
|
-
message: o.message || undefined,
|
|
274
|
-
}))
|
|
275
|
-
: undefined,
|
|
276
|
-
}));
|
|
277
|
-
}
|
|
278
|
-
/** Convert proto skill references back to SDK input format. */
|
|
279
|
-
function specSkillRefsToInput(spec) {
|
|
280
|
-
return spec?.skillRefs?.map((r) => ({
|
|
281
|
-
org: r.org ?? "",
|
|
282
|
-
slug: r.slug ?? "",
|
|
283
|
-
version: r.version || undefined,
|
|
284
|
-
kind: r.kind,
|
|
285
|
-
}));
|
|
286
|
-
}
|
|
287
232
|
//# sourceMappingURL=useSessionConversation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionConversation.js","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAelE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionConversation.js","sourceRoot":"","sources":["../../src/session/useSessionConversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,11 @@ export interface UseSessionPageFlowReturn {
|
|
|
37
37
|
readonly resolution: AgentResolution | null;
|
|
38
38
|
/** Update the agent resolution. */
|
|
39
39
|
readonly setResolution: (r: AgentResolution | null) => void;
|
|
40
|
+
/**
|
|
41
|
+
* `true` when the session's agent is the org's default agent.
|
|
42
|
+
* Used to render the agent chip as non-removable in the composer.
|
|
43
|
+
*/
|
|
44
|
+
readonly isDefaultAgent: boolean;
|
|
40
45
|
/** Active MCP server configurations for follow-ups. */
|
|
41
46
|
readonly mcpServerUsages: McpServerUsageInput[];
|
|
42
47
|
/** Update MCP server configurations. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionPageFlow.d.ts","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAA0B,KAAK,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAErG,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionPageFlow.d.ts","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACnF,OAAO,EAAuB,KAAK,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AACvG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAA0B,KAAK,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAErG,OAAO,EAAqB,KAAK,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAStF,8CAA8C;AAC9C,MAAM,WAAW,yBAAyB;IACxC,qCAAqC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,yBAAyB;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;IAE5C;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC;IAExC,wFAAwF;IACxF,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IACtC,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;IACxD,sCAAsC;IACtC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,mCAAmC;IACnC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;IAC5D;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IAEjC,uDAAuD;IACvD,QAAQ,CAAC,eAAe,EAAE,mBAAmB,EAAE,CAAC;IAChD,wCAAwC;IACxC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,mBAAmB,EAAE,KAAK,IAAI,CAAC;IAErE,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;IAClC,+BAA+B;IAC/B,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IAErD,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,yBAAyB,CAAC;IAC9C,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;IAErD;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,CACrB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,4BAA4B,KACnC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,4BAA4B,CAAC,uBAAuB,CAAC,CAAC;IAEjF;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,4BAA4B,CAAC,qBAAqB,CAAC,CAAC;IAE5E;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,wBAAwB,CA6K1B"}
|
|
@@ -9,6 +9,7 @@ import { Harness } from "@stigmer/protos/ai/stigmer/agentic/session/v1/enum_pb";
|
|
|
9
9
|
import { useSessionConversation } from "./useSessionConversation";
|
|
10
10
|
import { useAgentRefFromSession } from "./useAgentRefFromSession";
|
|
11
11
|
import { usePersistedModel } from "./usePersistedModel";
|
|
12
|
+
import { specMcpUsagesToInput, specSkillRefsToInput } from "./session-spec-converters";
|
|
12
13
|
/**
|
|
13
14
|
* Well-known Daytona sandbox workspace root. Used as the SDK safety-net
|
|
14
15
|
* normalization target for cloud sessions (git-repo workspace entries).
|
|
@@ -80,25 +81,27 @@ export function useSessionPageFlow(options) {
|
|
|
80
81
|
const { agent: defaultAgent, isLoading: isDefaultAgentLoading } = useDefaultAgent(org);
|
|
81
82
|
const [agentRef, setAgentRef] = useState(null);
|
|
82
83
|
const [resolution, setResolution] = useState(null);
|
|
84
|
+
const [isDefaultAgent, setIsDefaultAgent] = useState(false);
|
|
83
85
|
const [agentInitDone, setAgentInitDone] = useState(false);
|
|
84
86
|
if (!agentInitDone && derivedAgentRef && sessionInstanceId && !isDefaultAgentLoading) {
|
|
85
87
|
setAgentInitDone(true);
|
|
88
|
+
setAgentRef(derivedAgentRef);
|
|
89
|
+
setResolution({ mode: "saved", instanceId: sessionInstanceId });
|
|
86
90
|
const isDefault = defaultAgent &&
|
|
87
91
|
derivedAgentRef.org === defaultAgent.metadata?.org &&
|
|
88
92
|
derivedAgentRef.slug === defaultAgent.metadata?.slug;
|
|
89
|
-
|
|
90
|
-
setAgentRef(derivedAgentRef);
|
|
91
|
-
setResolution({ mode: "saved", instanceId: sessionInstanceId });
|
|
92
|
-
}
|
|
93
|
+
setIsDefaultAgent(!!isDefault);
|
|
93
94
|
}
|
|
94
95
|
// -------------------------------------------------------------------------
|
|
95
|
-
//
|
|
96
|
+
// Session spec sync — hydrate workspace, MCP servers, and skills on first load
|
|
96
97
|
// -------------------------------------------------------------------------
|
|
97
98
|
useEffect(() => {
|
|
98
99
|
if (!conv.session || initialSyncDone.current)
|
|
99
100
|
return;
|
|
100
101
|
initialSyncDone.current = true;
|
|
101
|
-
const
|
|
102
|
+
const spec = conv.session.spec;
|
|
103
|
+
// Workspace entries
|
|
104
|
+
const protoEntries = spec?.workspaceEntries ?? [];
|
|
102
105
|
for (const entry of protoEntries) {
|
|
103
106
|
if (entry.source?.source.case === "gitRepo") {
|
|
104
107
|
const { url, branch } = entry.source.source.value;
|
|
@@ -108,6 +111,16 @@ export function useSessionPageFlow(options) {
|
|
|
108
111
|
workspace.addLocalPath(entry.source.source.value.path);
|
|
109
112
|
}
|
|
110
113
|
}
|
|
114
|
+
// MCP server usages
|
|
115
|
+
const mcpInputs = specMcpUsagesToInput(spec);
|
|
116
|
+
if (mcpInputs?.length) {
|
|
117
|
+
setMcpServerUsages(mcpInputs);
|
|
118
|
+
}
|
|
119
|
+
// Skill references
|
|
120
|
+
const skillInputs = specSkillRefsToInput(spec);
|
|
121
|
+
if (skillInputs?.length) {
|
|
122
|
+
setSkillRefs(skillInputs);
|
|
123
|
+
}
|
|
111
124
|
}, [conv.session, workspace]);
|
|
112
125
|
// -------------------------------------------------------------------------
|
|
113
126
|
// Follow-up submission with agent override
|
|
@@ -166,6 +179,7 @@ export function useSessionPageFlow(options) {
|
|
|
166
179
|
setAgentRef,
|
|
167
180
|
resolution,
|
|
168
181
|
setResolution,
|
|
182
|
+
isDefaultAgent,
|
|
169
183
|
mcpServerUsages,
|
|
170
184
|
setMcpServerUsages,
|
|
171
185
|
skillRefs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionPageFlow.js","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAG1E,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAkC,MAAM,cAAc,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAkC,MAAM,kCAAkC,CAAC;AAEvG,OAAO,EAAE,gBAAgB,EAAsB,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,uDAAuD,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAqC,MAAM,0BAA0B,CAAC;AACrG,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAgC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useSessionPageFlow.js","sourceRoot":"","sources":["../../src/session/useSessionPageFlow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { SearchResult } from "@stigmer/protos/ai/stigmer/search/v1/io_pb";
|
|
2
|
+
/** Options for {@link useSessionSearch}. */
|
|
3
|
+
export interface UseSessionSearchOptions {
|
|
4
|
+
/** Maximum sessions per page. @default 20 */
|
|
5
|
+
readonly pageSize?: number;
|
|
6
|
+
}
|
|
7
|
+
/** Return value of {@link useSessionSearch}. */
|
|
8
|
+
export interface UseSessionSearchReturn {
|
|
9
|
+
/** Current page of session entries (lightweight SearchResult projections). */
|
|
10
|
+
readonly sessions: readonly SearchResult[];
|
|
11
|
+
/** Total number of sessions matching the query. */
|
|
12
|
+
readonly totalCount: number;
|
|
13
|
+
/** Total pages available. */
|
|
14
|
+
readonly totalPages: number;
|
|
15
|
+
/** The current page number (1-indexed). */
|
|
16
|
+
readonly currentPage: number;
|
|
17
|
+
/** `true` while the initial fetch is in flight. */
|
|
18
|
+
readonly isLoading: boolean;
|
|
19
|
+
/** `true` while a background refetch is in flight. */
|
|
20
|
+
readonly isRefetching: boolean;
|
|
21
|
+
/** Error from the last failed request, or `null`. */
|
|
22
|
+
readonly error: Error | null;
|
|
23
|
+
/** Re-fetch the current page. */
|
|
24
|
+
readonly refetch: () => void;
|
|
25
|
+
/** Whether more pages are available. */
|
|
26
|
+
readonly hasMore: boolean;
|
|
27
|
+
/** Load the next page (appends to existing sessions). */
|
|
28
|
+
readonly loadMore: () => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Data hook that fetches sessions via the SearchService for lightweight,
|
|
32
|
+
* org-scoped, paginated session listing.
|
|
33
|
+
*
|
|
34
|
+
* Unlike {@link useSessionList} which calls the dedicated SessionQueryController.list
|
|
35
|
+
* RPC (loading full session documents with per-session FGA authorization),
|
|
36
|
+
* this hook uses the SearchService which returns lightweight `SearchResult`
|
|
37
|
+
* projections and benefits from the search index's optimized access patterns.
|
|
38
|
+
*
|
|
39
|
+
* Supports incremental "load more" pagination — each call to `loadMore()`
|
|
40
|
+
* fetches the next page and appends results.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```tsx
|
|
44
|
+
* function SessionSidebar() {
|
|
45
|
+
* const { sessions, isLoading, hasMore, loadMore } = useSessionSearch();
|
|
46
|
+
*
|
|
47
|
+
* return (
|
|
48
|
+
* <ul>
|
|
49
|
+
* {sessions.map((s) => <li key={s.id}>{s.description}</li>)}
|
|
50
|
+
* {hasMore && <button onClick={loadMore}>Load more</button>}
|
|
51
|
+
* </ul>
|
|
52
|
+
* );
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function useSessionSearch(options?: UseSessionSearchOptions): UseSessionSearchReturn;
|
|
57
|
+
//# sourceMappingURL=useSessionSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionSearch.d.ts","sourceRoot":"","sources":["../../src/session/useSessionSearch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAM/E,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,mDAAmD;IACnD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,6BAA6B;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,iCAAiC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;CAC/B;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,uBAAuB,GAChC,sBAAsB,CAiExB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useRef, useState } from "react";
|
|
3
|
+
import { ApiResourceKind } from "@stigmer/protos/ai/stigmer/commons/apiresource/apiresourcekind/api_resource_kind_pb";
|
|
4
|
+
import { useStigmer } from "../hooks";
|
|
5
|
+
import { useActiveOrgSlug } from "../organization/OrgProvider";
|
|
6
|
+
import { useFetch } from "../internal/useFetch";
|
|
7
|
+
const DEFAULT_PAGE_SIZE = 20;
|
|
8
|
+
const INITIAL_DATA = {
|
|
9
|
+
sessions: [],
|
|
10
|
+
totalCount: 0,
|
|
11
|
+
totalPages: 0,
|
|
12
|
+
currentPage: 1,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Data hook that fetches sessions via the SearchService for lightweight,
|
|
16
|
+
* org-scoped, paginated session listing.
|
|
17
|
+
*
|
|
18
|
+
* Unlike {@link useSessionList} which calls the dedicated SessionQueryController.list
|
|
19
|
+
* RPC (loading full session documents with per-session FGA authorization),
|
|
20
|
+
* this hook uses the SearchService which returns lightweight `SearchResult`
|
|
21
|
+
* projections and benefits from the search index's optimized access patterns.
|
|
22
|
+
*
|
|
23
|
+
* Supports incremental "load more" pagination — each call to `loadMore()`
|
|
24
|
+
* fetches the next page and appends results.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* function SessionSidebar() {
|
|
29
|
+
* const { sessions, isLoading, hasMore, loadMore } = useSessionSearch();
|
|
30
|
+
*
|
|
31
|
+
* return (
|
|
32
|
+
* <ul>
|
|
33
|
+
* {sessions.map((s) => <li key={s.id}>{s.description}</li>)}
|
|
34
|
+
* {hasMore && <button onClick={loadMore}>Load more</button>}
|
|
35
|
+
* </ul>
|
|
36
|
+
* );
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export function useSessionSearch(options) {
|
|
41
|
+
const stigmer = useStigmer();
|
|
42
|
+
const org = useActiveOrgSlug();
|
|
43
|
+
const pageSize = options?.pageSize ?? DEFAULT_PAGE_SIZE;
|
|
44
|
+
const [page, setPage] = useState(1);
|
|
45
|
+
const accumulatedRef = useRef([]);
|
|
46
|
+
const pageRef = useRef(page);
|
|
47
|
+
pageRef.current = page;
|
|
48
|
+
const fetchFn = org
|
|
49
|
+
? async () => {
|
|
50
|
+
const currentPage = pageRef.current;
|
|
51
|
+
const resp = await stigmer.search.query({
|
|
52
|
+
kinds: [ApiResourceKind.session],
|
|
53
|
+
org,
|
|
54
|
+
page: { num: currentPage, size: pageSize },
|
|
55
|
+
});
|
|
56
|
+
if (currentPage === 1) {
|
|
57
|
+
accumulatedRef.current = [...resp.entries];
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
accumulatedRef.current = [...accumulatedRef.current, ...resp.entries];
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
sessions: accumulatedRef.current,
|
|
64
|
+
totalCount: resp.totalCount,
|
|
65
|
+
totalPages: resp.totalPages,
|
|
66
|
+
currentPage,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
: null;
|
|
70
|
+
const { data, isLoading, isRefetching, error, refetch } = useFetch(fetchFn, [org, pageSize, page, stigmer], INITIAL_DATA);
|
|
71
|
+
const loadMore = useCallback(() => {
|
|
72
|
+
if (data.currentPage < data.totalPages) {
|
|
73
|
+
setPage((p) => p + 1);
|
|
74
|
+
}
|
|
75
|
+
}, [data.currentPage, data.totalPages]);
|
|
76
|
+
const fullRefetch = useCallback(() => {
|
|
77
|
+
accumulatedRef.current = [];
|
|
78
|
+
setPage(1);
|
|
79
|
+
refetch();
|
|
80
|
+
}, [refetch]);
|
|
81
|
+
return {
|
|
82
|
+
sessions: data.sessions,
|
|
83
|
+
totalCount: data.totalCount,
|
|
84
|
+
totalPages: data.totalPages,
|
|
85
|
+
currentPage: data.currentPage,
|
|
86
|
+
isLoading,
|
|
87
|
+
isRefetching,
|
|
88
|
+
error,
|
|
89
|
+
refetch: fullRefetch,
|
|
90
|
+
hasMore: data.currentPage < data.totalPages,
|
|
91
|
+
loadMore,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=useSessionSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSessionSearch.js","sourceRoot":"","sources":["../../src/session/useSessionSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,12 @@ export interface ChipItem {
|
|
|
5
5
|
key: string;
|
|
6
6
|
label: string;
|
|
7
7
|
type: "agent" | "workspace" | "mcp" | "skill" | "secret" | "runner";
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Remove handler. When omitted, the chip renders without an X button
|
|
10
|
+
* and with a subtly muted style to signal it is non-removable
|
|
11
|
+
* (e.g., the session's default agent).
|
|
12
|
+
*/
|
|
13
|
+
onRemove?: () => void;
|
|
9
14
|
/** Drives visual variant: amber for `needsSetup`, muted+spinner for `loading`/`submitting`. */
|
|
10
15
|
status?: "loading" | "needsSetup" | "submitting" | "ready";
|
|
11
16
|
/** Secondary text before the remove button (e.g., tool count "4/12"). */
|
|
@@ -34,7 +39,7 @@ export function ContextChip({
|
|
|
34
39
|
}: {
|
|
35
40
|
label: string;
|
|
36
41
|
type: ChipItem["type"];
|
|
37
|
-
onRemove
|
|
42
|
+
onRemove?: () => void;
|
|
38
43
|
disabled?: boolean;
|
|
39
44
|
status?: ChipItem["status"];
|
|
40
45
|
detail?: string;
|
|
@@ -42,6 +47,7 @@ export function ContextChip({
|
|
|
42
47
|
}) {
|
|
43
48
|
const isTransient = status === "loading" || status === "submitting";
|
|
44
49
|
const isWarning = status === "needsSetup";
|
|
50
|
+
const isReadonly = onRemove == null;
|
|
45
51
|
|
|
46
52
|
const labelContent = (
|
|
47
53
|
<>
|
|
@@ -74,6 +80,7 @@ export function ContextChip({
|
|
|
74
80
|
? "border border-warning/30 bg-warning/10"
|
|
75
81
|
: "bg-muted-subtle",
|
|
76
82
|
isTransient && "opacity-70",
|
|
83
|
+
isReadonly && "opacity-80",
|
|
77
84
|
)}
|
|
78
85
|
>
|
|
79
86
|
{onClick ? (
|
|
@@ -91,15 +98,17 @@ export function ContextChip({
|
|
|
91
98
|
{labelContent}
|
|
92
99
|
</span>
|
|
93
100
|
)}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
{onRemove && (
|
|
102
|
+
<button
|
|
103
|
+
type="button"
|
|
104
|
+
onClick={onRemove}
|
|
105
|
+
disabled={disabled}
|
|
106
|
+
className="ml-0.5 shrink-0 text-muted-foreground hover:text-destructive disabled:pointer-events-none"
|
|
107
|
+
aria-label={`Remove ${label}`}
|
|
108
|
+
>
|
|
109
|
+
<XIcon />
|
|
110
|
+
</button>
|
|
111
|
+
)}
|
|
103
112
|
</span>
|
|
104
113
|
);
|
|
105
114
|
}
|