lattice-orchestrator 0.8.3 → 0.8.5
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/dist/mcp-server/lattice-tools.d.ts +2 -2
- package/dist/mcp-server/lattice-tools.js +17 -17
- package/dist/mcp-server/lattice-tools.js.map +1 -1
- package/dist/process-daemon/process-daemon.js +15 -15
- package/dist/services/process/claude-process-manager.js +11 -11
- package/dist/web/assets/{ArchivedCardPrototype-DgQY30Bk.js → ArchivedCardPrototype-JZhJ7TiO.js} +1 -1
- package/dist/web/assets/{BannerGallery-Bi719D5s.js → BannerGallery-hMcjjVx-.js} +1 -1
- package/dist/web/assets/{BannerPrototype-DWAA3TqH.js → BannerPrototype-Dr7nJUZs.js} +1 -1
- package/dist/web/assets/{CodeHikeExperiment-CPMnTJcZ.js → CodeHikeExperiment-BrFs7ej6.js} +1 -1
- package/dist/web/assets/{ContextTooltipVariations-DMrKZY6i.js → ContextTooltipVariations-DJdRAss5.js} +1 -1
- package/dist/web/assets/{FaviconExportPrototype-DoSuGW-C.js → FaviconExportPrototype-BJtAH2gb.js} +1 -1
- package/dist/web/assets/{FontShowcasePrototype-C92PbVSN.js → FontShowcasePrototype-Cjb1xjxG.js} +1 -1
- package/dist/web/assets/{GeometricGallery-BTqbJqcY.js → GeometricGallery-Ob1Cjvtx.js} +1 -1
- package/dist/web/assets/{HistoryWalkthroughPrototype-DlCzXZKR.js → HistoryWalkthroughPrototype-0TjYMQBs.js} +1 -1
- package/dist/web/assets/{InlineWalkthroughPrototype-DqMgTWl4.js → InlineWalkthroughPrototype-Gyku6wOq.js} +1 -1
- package/dist/web/assets/{MarkButtonPrototype-C6mcY9Z4.js → MarkButtonPrototype-C-QcSdXg.js} +1 -1
- package/dist/web/assets/{MenuStylesPrototype-Dvaw2yjf.js → MenuStylesPrototype-D0DTobBL.js} +1 -1
- package/dist/web/assets/{MomentCardVariations-DG0ez_yf.js → MomentCardVariations-B0spW4Ay.js} +1 -1
- package/dist/web/assets/{MomentHeaderVariations-DxU-5xWV.js → MomentHeaderVariations-DlhmlQWL.js} +1 -1
- package/dist/web/assets/{NarrativeWalkthroughDemo-YsXlAZIZ.js → NarrativeWalkthroughDemo-BUpArFac.js} +1 -1
- package/dist/web/assets/{OutcomeVariations-CiFkBc8e.js → OutcomeVariations-DEKMewir.js} +1 -1
- package/dist/web/assets/{PermissionPatternPickerPrototype-BI8UAgZT.js → PermissionPatternPickerPrototype-C-XUkIvc.js} +1 -1
- package/dist/web/assets/{PermissionPrototype-DA-ik9Rg.js → PermissionPrototype-C1OtWx9U.js} +1 -1
- package/dist/web/assets/{PipelineGallery-Dcv8ZT4G.js → PipelineGallery-CeZU4w0O.js} +1 -1
- package/dist/web/assets/{RecommendationCardsPrototype-DVS_bGcK.js → RecommendationCardsPrototype-DvC84Yvs.js} +1 -1
- package/dist/web/assets/{RecommendationsPopoverPrototype-C-3jGU1O.js → RecommendationsPopoverPrototype-D-wRylK8.js} +1 -1
- package/dist/web/assets/{ScopeHeaderPrototype-6TcNSjzt.js → ScopeHeaderPrototype-_23mg9ep.js} +1 -1
- package/dist/web/assets/{ScopeHeaderStylesPrototype-BmCj6VeP.js → ScopeHeaderStylesPrototype-D8eWxVTo.js} +1 -1
- package/dist/web/assets/{ScrollycodingPrototype-DCwZPszY.js → ScrollycodingPrototype-CpTikRJL.js} +1 -1
- package/dist/web/assets/{SectionHeaderVariations-no94ESaO.js → SectionHeaderVariations-CsUmMgX3.js} +1 -1
- package/dist/web/assets/{SemanticGallery-DElLI8OI.js → SemanticGallery-B9syOmfD.js} +1 -1
- package/dist/web/assets/{SessionCardPrototype-DXsOX1uc.js → SessionCardPrototype-L6MGoos9.js} +1 -1
- package/dist/web/assets/{SessionSidebarVariations-B-O9nuDp.js → SessionSidebarVariations-Cj7v6VcF.js} +1 -1
- package/dist/web/assets/{SessionStartPrototype-BJSlZ6S1.js → SessionStartPrototype-KRkFR1yz.js} +1 -1
- package/dist/web/assets/{SmartMenuPrototype-CtXdjbh7.js → SmartMenuPrototype-CCLI1A10.js} +1 -1
- package/dist/web/assets/{StyleGallery-qjgdtPh5.js → StyleGallery-DS588YSZ.js} +1 -1
- package/dist/web/assets/{TimelineCardPrototype-4cBp4Gct.js → TimelineCardPrototype-pnetcNoE.js} +1 -1
- package/dist/web/assets/{ToolbarPrototype-DAtFSiGm.js → ToolbarPrototype-D88TOuo8.js} +1 -1
- package/dist/web/assets/{TooltipExperiment-Gx2p8jLE.js → TooltipExperiment-BuGXDMA1.js} +1 -1
- package/dist/web/assets/{WalkthroughCTAPrototype-CJmJA3LP.js → WalkthroughCTAPrototype-DmsB3wUP.js} +1 -1
- package/dist/web/assets/{WalkthroughHeaderVariations-fSzZJYbe.js → WalkthroughHeaderVariations-Damyd2lf.js} +1 -1
- package/dist/web/assets/{WalkthroughShowcase-Cah4ewIq.js → WalkthroughShowcase-Cs4Ud6qQ.js} +1 -1
- package/dist/web/assets/{brain-_7NdN-5a.js → brain-DllgbiJg.js} +1 -1
- package/dist/web/assets/{grid-3x3-CIv7gG-M.js → grid-3x3-DYjcqifk.js} +1 -1
- package/dist/web/assets/{main-Dk2c9djg.js → main-DjQamQAw.js} +3 -3
- package/dist/web/assets/{target-BeJkHlJP.js → target-Nfmf-kRe.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Lattice Orchestrator MCP Tools Server
|
|
4
4
|
*
|
|
5
|
-
* Provides tools for
|
|
5
|
+
* Provides tools for Lattice to manage CUI sessions:
|
|
6
6
|
* - list_sessions: List all active and recent sessions
|
|
7
7
|
* - get_session_details: Get conversation history for a session
|
|
8
8
|
* - get_session_insights: Get AI insights for a session
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Lattice Orchestrator MCP Tools Server
|
|
4
4
|
*
|
|
5
|
-
* Provides tools for
|
|
5
|
+
* Provides tools for Lattice to manage CUI sessions:
|
|
6
6
|
* - list_sessions: List all active and recent sessions
|
|
7
7
|
* - get_session_details: Get conversation history for a session
|
|
8
8
|
* - get_session_insights: Get AI insights for a session
|
|
@@ -15,8 +15,8 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
15
15
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
16
16
|
import { CallToolRequestSchema, ListToolsRequestSchema, McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
17
17
|
import fetch from 'node-fetch';
|
|
18
|
-
// Get
|
|
19
|
-
const
|
|
18
|
+
// Get Lattice server URL from environment
|
|
19
|
+
const LATTICE_SERVER_URL = process.env.LATTICE_SERVER_URL || `http://localhost:${process.env.LATTICE_SERVER_PORT || '3001'}`;
|
|
20
20
|
// Log to stderr so it doesn't interfere with MCP stdio
|
|
21
21
|
const log = (level, message, data) => {
|
|
22
22
|
const timestamp = new Date().toISOString();
|
|
@@ -24,7 +24,7 @@ const log = (level, message, data) => {
|
|
|
24
24
|
};
|
|
25
25
|
// Create MCP server
|
|
26
26
|
const server = new Server({
|
|
27
|
-
name: '
|
|
27
|
+
name: 'lattice-orchestrator',
|
|
28
28
|
version: '1.0.0'
|
|
29
29
|
}, {
|
|
30
30
|
capabilities: {
|
|
@@ -36,7 +36,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
36
36
|
tools: [
|
|
37
37
|
{
|
|
38
38
|
name: 'list_sessions',
|
|
39
|
-
description: 'List all
|
|
39
|
+
description: 'List all Lattice sessions with their status, working directory, and summary. Use this to get an overview of what sessions exist.',
|
|
40
40
|
inputSchema: {
|
|
41
41
|
type: 'object',
|
|
42
42
|
properties: {
|
|
@@ -81,7 +81,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
83
|
name: 'start_session',
|
|
84
|
-
description: 'Start a new
|
|
84
|
+
description: 'Start a new Lattice session in a specified directory with an initial prompt.',
|
|
85
85
|
inputSchema: {
|
|
86
86
|
type: 'object',
|
|
87
87
|
properties: {
|
|
@@ -103,13 +103,13 @@ server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
105
|
name: 'stop_session',
|
|
106
|
-
description: 'Stop a running
|
|
106
|
+
description: 'Stop a running Lattice session. Use with caution - confirm with the user before stopping.',
|
|
107
107
|
inputSchema: {
|
|
108
108
|
type: 'object',
|
|
109
109
|
properties: {
|
|
110
110
|
streamingId: {
|
|
111
111
|
type: 'string',
|
|
112
|
-
description: 'The
|
|
112
|
+
description: 'The Lattice streaming ID (not Claude session ID). Get this from list_sessions.'
|
|
113
113
|
}
|
|
114
114
|
},
|
|
115
115
|
required: ['streamingId']
|
|
@@ -161,7 +161,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
161
161
|
switch (name) {
|
|
162
162
|
case 'list_sessions': {
|
|
163
163
|
const { limit = 20, archived = false } = args || {};
|
|
164
|
-
const response = await fetch(`${
|
|
164
|
+
const response = await fetch(`${LATTICE_SERVER_URL}/api/conversations?limit=${limit}&archived=${archived}`, {
|
|
165
165
|
method: 'GET',
|
|
166
166
|
headers: { 'Content-Type': 'application/json' }
|
|
167
167
|
});
|
|
@@ -195,7 +195,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
195
195
|
if (!sessionId) {
|
|
196
196
|
throw new McpError(ErrorCode.InvalidParams, 'sessionId is required');
|
|
197
197
|
}
|
|
198
|
-
const response = await fetch(`${
|
|
198
|
+
const response = await fetch(`${LATTICE_SERVER_URL}/api/conversations/${sessionId}`, {
|
|
199
199
|
method: 'GET',
|
|
200
200
|
headers: { 'Content-Type': 'application/json' }
|
|
201
201
|
});
|
|
@@ -220,7 +220,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
220
220
|
if (!sessionId) {
|
|
221
221
|
throw new McpError(ErrorCode.InvalidParams, 'sessionId is required');
|
|
222
222
|
}
|
|
223
|
-
const response = await fetch(`${
|
|
223
|
+
const response = await fetch(`${LATTICE_SERVER_URL}/api/conversations/${sessionId}/insights`, {
|
|
224
224
|
method: 'GET',
|
|
225
225
|
headers: { 'Content-Type': 'application/json' }
|
|
226
226
|
});
|
|
@@ -245,7 +245,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
245
245
|
if (!workingDirectory || !initialPrompt) {
|
|
246
246
|
throw new McpError(ErrorCode.InvalidParams, 'workingDirectory and initialPrompt are required');
|
|
247
247
|
}
|
|
248
|
-
const response = await fetch(`${
|
|
248
|
+
const response = await fetch(`${LATTICE_SERVER_URL}/api/conversations/start`, {
|
|
249
249
|
method: 'POST',
|
|
250
250
|
headers: { 'Content-Type': 'application/json' },
|
|
251
251
|
body: JSON.stringify({
|
|
@@ -273,7 +273,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
273
273
|
if (!streamingId) {
|
|
274
274
|
throw new McpError(ErrorCode.InvalidParams, 'streamingId is required');
|
|
275
275
|
}
|
|
276
|
-
const response = await fetch(`${
|
|
276
|
+
const response = await fetch(`${LATTICE_SERVER_URL}/api/conversations/${streamingId}/stop`, {
|
|
277
277
|
method: 'POST',
|
|
278
278
|
headers: { 'Content-Type': 'application/json' }
|
|
279
279
|
});
|
|
@@ -297,7 +297,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
297
297
|
if (!sessionId || archived === undefined) {
|
|
298
298
|
throw new McpError(ErrorCode.InvalidParams, 'sessionId and archived are required');
|
|
299
299
|
}
|
|
300
|
-
const response = await fetch(`${
|
|
300
|
+
const response = await fetch(`${LATTICE_SERVER_URL}/api/conversations/${sessionId}/update`, {
|
|
301
301
|
method: 'PUT',
|
|
302
302
|
headers: { 'Content-Type': 'application/json' },
|
|
303
303
|
body: JSON.stringify({ archived })
|
|
@@ -321,7 +321,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
321
321
|
if (!sessionId || !customName) {
|
|
322
322
|
throw new McpError(ErrorCode.InvalidParams, 'sessionId and customName are required');
|
|
323
323
|
}
|
|
324
|
-
const response = await fetch(`${
|
|
324
|
+
const response = await fetch(`${LATTICE_SERVER_URL}/api/conversations/${sessionId}/update`, {
|
|
325
325
|
method: 'PUT',
|
|
326
326
|
headers: { 'Content-Type': 'application/json' },
|
|
327
327
|
body: JSON.stringify({ customName })
|
|
@@ -357,7 +357,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
357
357
|
async function main() {
|
|
358
358
|
const transport = new StdioServerTransport();
|
|
359
359
|
await server.connect(transport);
|
|
360
|
-
log('info', '
|
|
360
|
+
log('info', 'Lattice Orchestrator MCP server started', { serverUrl: LATTICE_SERVER_URL });
|
|
361
361
|
}
|
|
362
362
|
main().catch((error) => {
|
|
363
363
|
log('error', 'MCP server error', { error: String(error) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lattice-tools.js","sourceRoot":"","sources":["../../src/mcp-server/lattice-tools.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,QAAQ,EACR,SAAS,EACV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,0CAA0C;AAC1C,MAAM,kBAAkB,GACtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,
|
|
1
|
+
{"version":3,"file":"lattice-tools.js","sourceRoot":"","sources":["../../src/mcp-server/lattice-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -99,7 +99,7 @@ export class ProcessDaemon extends EventEmitter {
|
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
101
|
throw new Error('Claude CLI not found.\n\n' +
|
|
102
|
-
'
|
|
102
|
+
'Lattice Orchestrator requires Claude Code CLI to be installed.\n' +
|
|
103
103
|
'Install it with: npm install -g @anthropic-ai/claude-code\n' +
|
|
104
104
|
'Then authenticate with: claude\n\n' +
|
|
105
105
|
'More info: https://docs.anthropic.com/en/docs/claude-code');
|
|
@@ -769,11 +769,11 @@ export class ProcessDaemon extends EventEmitter {
|
|
|
769
769
|
applyMcpPermissionPrompt(args, streamingId) {
|
|
770
770
|
// Paths to our MCP servers
|
|
771
771
|
const mcpServerPath = path.join(__dirname, '..', 'mcp-server', 'index.js');
|
|
772
|
-
const
|
|
772
|
+
const latticeToolsPath = path.join(__dirname, '..', 'mcp-server', 'lattice-tools.js');
|
|
773
773
|
// MCP server config - the server needs CUI_STREAMING_ID to associate permissions
|
|
774
774
|
const mcpConfig = {
|
|
775
775
|
mcpServers: {
|
|
776
|
-
'
|
|
776
|
+
'lattice-permissions': {
|
|
777
777
|
command: 'node',
|
|
778
778
|
args: [mcpServerPath],
|
|
779
779
|
env: {
|
|
@@ -781,9 +781,9 @@ export class ProcessDaemon extends EventEmitter {
|
|
|
781
781
|
CUI_SERVER_URL: `http://localhost:${process.env.PORT || 3001}`,
|
|
782
782
|
},
|
|
783
783
|
},
|
|
784
|
-
'
|
|
784
|
+
'lattice-orchestrator': {
|
|
785
785
|
command: 'node',
|
|
786
|
-
args: [
|
|
786
|
+
args: [latticeToolsPath],
|
|
787
787
|
env: {
|
|
788
788
|
CUI_STREAMING_ID: streamingId || 'unknown',
|
|
789
789
|
CUI_SERVER_URL: `http://localhost:${process.env.PORT || 3001}`,
|
|
@@ -792,8 +792,8 @@ export class ProcessDaemon extends EventEmitter {
|
|
|
792
792
|
},
|
|
793
793
|
};
|
|
794
794
|
args.push('--mcp-config', JSON.stringify(mcpConfig));
|
|
795
|
-
args.push('--permission-prompt-tool', '
|
|
796
|
-
logger.info('Applied MCP config', { streamingId, mcpServerPath,
|
|
795
|
+
args.push('--permission-prompt-tool', 'mcp__lattice-permissions__permission_prompt');
|
|
796
|
+
logger.info('Applied MCP config', { streamingId, mcpServerPath, latticeToolsPath });
|
|
797
797
|
}
|
|
798
798
|
buildStartArgs(config, streamingId) {
|
|
799
799
|
const args = this.buildBaseArgs();
|
|
@@ -812,19 +812,19 @@ export class ProcessDaemon extends EventEmitter {
|
|
|
812
812
|
if (config.disallowedTools?.length) {
|
|
813
813
|
args.push('--disallowedTools', config.disallowedTools.join(','));
|
|
814
814
|
}
|
|
815
|
-
// Add system prompt with
|
|
816
|
-
const
|
|
817
|
-
##
|
|
815
|
+
// Add system prompt with Lattice environment info
|
|
816
|
+
const latticeEnvInfo = `
|
|
817
|
+
## Lattice Orchestrator Environment
|
|
818
818
|
|
|
819
|
-
You are running inside the
|
|
819
|
+
You are running inside the Lattice orchestrator dashboard.
|
|
820
820
|
|
|
821
821
|
**Server logs** (for debugging issues):
|
|
822
|
-
- \`~/.
|
|
823
|
-
- \`~/.
|
|
822
|
+
- \`~/.lattice/logs/server.log\` - Express server logs
|
|
823
|
+
- \`~/.lattice/logs/daemon.log\` - Process daemon logs
|
|
824
824
|
`;
|
|
825
825
|
const systemPrompt = config.systemPrompt
|
|
826
|
-
? `${config.systemPrompt}\n${
|
|
827
|
-
:
|
|
826
|
+
? `${config.systemPrompt}\n${latticeEnvInfo}`
|
|
827
|
+
: latticeEnvInfo;
|
|
828
828
|
args.push('--system-prompt', systemPrompt);
|
|
829
829
|
// Apply permission mode
|
|
830
830
|
this.applyPermissionMode(args, config.permissionMode, streamingId);
|
|
@@ -90,7 +90,7 @@ export class ClaudeProcessManager extends EventEmitter {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
throw new Error('Claude CLI not found.\n\n' +
|
|
93
|
-
'
|
|
93
|
+
'Lattice Orchestrator requires Claude Code CLI to be installed.\n' +
|
|
94
94
|
'Install it with: npm install -g @anthropic-ai/claude-code\n' +
|
|
95
95
|
'Then authenticate with: claude\n\n' +
|
|
96
96
|
'More info: https://docs.anthropic.com/en/docs/claude-code');
|
|
@@ -721,8 +721,8 @@ export class ClaudeProcessManager extends EventEmitter {
|
|
|
721
721
|
// Use MCP permission prompt tool to delegate approval to the dashboard
|
|
722
722
|
// The tool must be pre-allowed so Claude can use it without prompting
|
|
723
723
|
if (this.mcpConfigPath) {
|
|
724
|
-
args.push('--permission-prompt-tool', '
|
|
725
|
-
args.push('--allowedTools', '
|
|
724
|
+
args.push('--permission-prompt-tool', 'mcp__lattice-permissions__permission_prompt');
|
|
725
|
+
args.push('--allowedTools', 'mcp__lattice-permissions__permission_prompt');
|
|
726
726
|
this.logger.debug('Permission mode: default (using MCP permission prompt)');
|
|
727
727
|
}
|
|
728
728
|
else {
|
|
@@ -781,19 +781,19 @@ export class ClaudeProcessManager extends EventEmitter {
|
|
|
781
781
|
if (config.disallowedTools && config.disallowedTools.length > 0) {
|
|
782
782
|
args.push('--disallowedTools', config.disallowedTools.join(','));
|
|
783
783
|
}
|
|
784
|
-
// Add system prompt with
|
|
785
|
-
const
|
|
786
|
-
##
|
|
784
|
+
// Add system prompt with Lattice environment info
|
|
785
|
+
const latticeEnvInfo = `
|
|
786
|
+
## Lattice Orchestrator Environment
|
|
787
787
|
|
|
788
|
-
You are running inside the
|
|
788
|
+
You are running inside the Lattice orchestrator dashboard.
|
|
789
789
|
|
|
790
790
|
**Server logs** (for debugging issues):
|
|
791
|
-
- \`~/.
|
|
792
|
-
- \`~/.
|
|
791
|
+
- \`~/.lattice/logs/server.log\` - Express server logs
|
|
792
|
+
- \`~/.lattice/logs/daemon.log\` - Process daemon logs
|
|
793
793
|
`;
|
|
794
794
|
const systemPrompt = config.systemPrompt
|
|
795
|
-
? `${config.systemPrompt}\n${
|
|
796
|
-
:
|
|
795
|
+
? `${config.systemPrompt}\n${latticeEnvInfo}`
|
|
796
|
+
: latticeEnvInfo;
|
|
797
797
|
args.push('--system-prompt', systemPrompt);
|
|
798
798
|
// Add MCP config if available
|
|
799
799
|
if (this.mcpConfigPath) {
|
package/dist/web/assets/{ArchivedCardPrototype-DgQY30Bk.js → ArchivedCardPrototype-JZhJ7TiO.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as p,j as e,g as u,A as g,h as x,i as l,k as h}from"./main-Dk2c9djg.js";const d=[{sessionId:"abc123def456",insights:{purpose:"Implement pagination for archived sessions",description:"Adding infinite scroll and reusing SessionCard component",theme:"ui",tags:{complexity:"moderate"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-7200*1e3).toISOString(),createdAt:new Date(Date.now()-300*60*1e3).toISOString()},{sessionId:"xyz789ghi012",insights:{purpose:"Fix SSE reconnection bug in activity stream",description:"Investigating why clients disconnect after server restart",theme:"infra",tags:{complexity:"gnarly"}},sessionInfo:{customName:"SSE Bug Hunt",identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-1440*60*1e3).toISOString(),createdAt:new Date(Date.now()-1560*60*1e3).toISOString()},{sessionId:"mno345pqr678",insights:{purpose:"Add voice transcription via Gemini API",description:"Integrating Gemini for audio input in the composer",theme:"feature",tags:{complexity:"routine"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-4320*60*1e3).toISOString(),createdAt:new Date(Date.now()-4320*60*1e3).toISOString()},{sessionId:"stu901vwx234",insights:{purpose:"Refactor insights computation pipeline",description:"Breaking apart the monolithic InsightsComputer into focused services",theme:"refactor",tags:{complexity:"gnarly"}},sessionInfo:{customName:"Insights Refactor",identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-10080*60*1e3).toISOString(),createdAt:new Date(Date.now()-11520*60*1e3).toISOString()},{sessionId:"yzab567cdef8",insights:{purpose:"Debug memory leak in session polling",description:null,theme:"bugfix",tags:{complexity:"moderate"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-336*60*60*1e3).toISOString(),createdAt:new Date(Date.now()-336*60*60*1e3).toISOString()},{sessionId:"ghij901klmn2",insights:{purpose:"CK3 motto generation pipeline",description:"Generating culturally-appropriate house mottos for all CK3 cultures",theme:"project",tags:{complexity:"moderate"}},sessionInfo:{customName:"CK3 Mottos",identity_image:null},workingDirectory:"/mnt/c/Users/jason/Documents/ck3-motto-ideation",updatedAt:new Date(Date.now()-720*60*60*1e3).toISOString(),createdAt:new Date(Date.now()-840*60*60*1e3).toISOString()}];function c(s){const n=Date.now()-new Date(s).getTime(),t=Math.floor(n/6e4),r=Math.floor(t/60),o=Math.floor(r/24);return t<60?`${t}m ago`:r<24?`${r}h ago`:o<7?`${o}d ago`:o<30?`${Math.floor(o/7)}w ago`:new Date(s).toLocaleDateString()}function m(s){switch(s){case"ui":return"text-cyan-400 bg-cyan-500/10 border-cyan-500/30";case"infra":return"text-purple-400 bg-purple-500/10 border-purple-500/30";case"feature":return"text-emerald-400 bg-emerald-500/10 border-emerald-500/30";case"refactor":return"text-amber-400 bg-amber-500/10 border-amber-500/30";case"bugfix":return"text-rose-400 bg-rose-500/10 border-rose-500/30";case"project":return"text-blue-400 bg-blue-500/10 border-blue-500/30";default:return"text-muted-foreground/70 bg-muted/30 border-border/30"}}function f({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"flex items-center gap-4 p-3 rounded-md bg-card/30 border border-border/20 hover:border-rose-500/30 transition-all",children:[e.jsx("div",{className:"w-14 h-10 rounded-sm flex-shrink-0 bg-gradient-to-br from-muted/20 via-muted/10 to-muted/20 border border-border/20"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/90 truncate",children:r?.customName||t?.purpose||a.slice(0,8)}),e.jsxs("div",{className:"flex items-center gap-2 mt-1 text-[10px] font-mono text-muted-foreground/40",children:[e.jsx(x,{size:10}),e.jsx("span",{children:c(i)}),o&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground/20",children:"•"}),e.jsx("span",{className:"truncate max-w-[150px]",children:o.split("/").slice(-2).join("/")})]})]})]}),t?.theme&&e.jsx("span",{className:`text-[9px] px-1.5 py-0.5 rounded border font-display uppercase tracking-wider ${m(t.theme)}`,children:t.theme}),e.jsx("button",{onClick:n,className:"p-1.5 rounded-sm text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",title:"Restore",children:e.jsx(l,{size:14})})]})}function b({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"rounded-lg border border-border/20 overflow-hidden bg-card/30 hover:border-rose-500/30 hover:shadow-[2px_2px_0_rgba(244,63,94,0.2)] hover:translate-x-[-1px] hover:translate-y-[-1px] transition-all group",children:[e.jsx("div",{className:"h-10 bg-gradient-to-r from-muted/10 via-muted/20 to-muted/10 relative",children:t?.theme&&e.jsx("span",{className:`absolute top-1.5 right-1.5 text-[8px] px-1 py-0.5 rounded border font-display uppercase tracking-wider ${m(t.theme)}`,children:t.theme})}),e.jsxs("div",{className:"p-3",children:[e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/90 group-hover:text-rose-400 truncate transition-colors",children:r?.customName||t?.purpose||a.slice(0,8)}),t?.description&&e.jsx("p",{className:"text-[11px] text-muted-foreground/40 line-clamp-2 mt-1",children:t.description}),e.jsxs("div",{className:"flex items-center justify-between mt-2",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/30",children:[e.jsx(x,{size:10}),e.jsx("span",{children:c(i)})]}),e.jsxs("button",{onClick:n,className:"flex items-center gap-1 px-2 py-1 rounded-sm text-[10px] font-mono text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",children:[e.jsx(l,{size:10}),e.jsx("span",{children:"Restore"})]})]})]})]})}function j({session:s,onRestore:n}){const{insights:t,sessionInfo:r,updatedAt:o,sessionId:i}=s;return e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-sm hover:bg-muted/20 transition-all group",children:[e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/30 w-12 flex-shrink-0",children:c(o)}),e.jsx("h3",{className:"flex-1 text-sm font-mono text-foreground/70 group-hover:text-rose-400 truncate transition-colors",children:r?.customName||t?.purpose||i.slice(0,8)}),t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded font-display uppercase ${m(t.theme)}`,children:t.theme}),e.jsx("button",{onClick:n,className:"opacity-0 group-hover:opacity-100 p-1 rounded-sm text-muted-foreground/40 hover:text-emerald-400 transition-all",children:e.jsx(l,{size:12})})]})}function v({session:s,onRestore:n}){const{insights:t,sessionInfo:r,updatedAt:o,sessionId:i}=s;return e.jsxs("div",{className:"p-2.5 rounded-md border border-border/20 bg-card/30 hover:border-rose-500/30 transition-all group",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx("h3",{className:"text-xs font-mono font-medium text-foreground/80 group-hover:text-rose-400 line-clamp-2 transition-colors",children:r?.customName||t?.purpose||i.slice(0,8)}),e.jsx("button",{onClick:n,className:"opacity-0 group-hover:opacity-100 p-0.5 rounded-sm text-muted-foreground/40 hover:text-emerald-400 transition-all flex-shrink-0",children:e.jsx(l,{size:10})})]}),e.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded font-display uppercase ${m(t.theme)}`,children:t.theme}),e.jsx("span",{className:"text-[9px] font-mono text-muted-foreground/30 ml-auto",children:c(o)})]})]})}function N({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"flex gap-3 group",children:[e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-rose-500/40 group-hover:bg-rose-400 transition-colors"}),e.jsx("div",{className:"w-px flex-1 bg-border/30"})]}),e.jsxs("div",{className:"flex-1 pb-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/40",children:c(i)}),t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded border font-display uppercase ${m(t.theme)}`,children:t.theme})]}),e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/80 group-hover:text-rose-400 transition-colors",children:r?.customName||t?.purpose||a.slice(0,8)}),t?.description&&e.jsx("p",{className:"text-[11px] text-muted-foreground/40 mt-1 line-clamp-1",children:t.description}),o&&e.jsxs("div",{className:"flex items-center gap-1 mt-1.5 text-[10px] text-muted-foreground/30",children:[e.jsx(h,{size:10}),e.jsx("span",{className:"truncate",children:o.split("/").slice(-2).join("/")})]}),e.jsxs("button",{onClick:n,className:"mt-2 flex items-center gap-1 px-2 py-1 rounded-sm text-[10px] font-mono text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",children:[e.jsx(l,{size:10}),e.jsx("span",{children:"Restore"})]})]})]})}function y(){const[s,n]=p.useState("row"),t=()=>{console.log("Restore clicked")};return e.jsxs("div",{className:"min-h-dvh bg-background text-foreground",children:[e.jsx("div",{className:"fixed inset-0 bg-[linear-gradient(rgba(0,255,255,0.02)_1px,transparent_1px),linear-gradient(90deg,rgba(0,255,255,0.02)_1px,transparent_1px)] bg-[size:24px_24px] pointer-events-none"}),e.jsx("header",{className:"relative border-b border-border/30 bg-card/80 backdrop-blur-md sticky top-0 z-10",children:e.jsx("div",{className:"max-w-4xl mx-auto px-6 py-4 flex items-center justify-between",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(u,{to:"/dev",className:"p-2 -ml-2 rounded-sm text-muted-foreground hover:text-cyan-400 hover:bg-cyan-500/10 transition-all",children:e.jsx(g,{size:18})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-lg font-mono font-bold tracking-wider text-rose-400",children:"ARCHIVED CARD VARIATIONS"}),e.jsx("p",{className:"text-[10px] font-display uppercase tracking-wider text-muted-foreground/50",children:"Exploring layouts for archived session display"})]})]})})}),e.jsx("div",{className:"relative max-w-4xl mx-auto px-6 py-4 border-b border-border/20",children:e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:["row","grid","compact","mini","timeline"].map(r=>e.jsx("button",{onClick:()=>n(r),className:`
|
|
1
|
+
import{r as p,j as e,g as u,A as g,h as x,i as l,k as h}from"./main-DjQamQAw.js";const d=[{sessionId:"abc123def456",insights:{purpose:"Implement pagination for archived sessions",description:"Adding infinite scroll and reusing SessionCard component",theme:"ui",tags:{complexity:"moderate"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-7200*1e3).toISOString(),createdAt:new Date(Date.now()-300*60*1e3).toISOString()},{sessionId:"xyz789ghi012",insights:{purpose:"Fix SSE reconnection bug in activity stream",description:"Investigating why clients disconnect after server restart",theme:"infra",tags:{complexity:"gnarly"}},sessionInfo:{customName:"SSE Bug Hunt",identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-1440*60*1e3).toISOString(),createdAt:new Date(Date.now()-1560*60*1e3).toISOString()},{sessionId:"mno345pqr678",insights:{purpose:"Add voice transcription via Gemini API",description:"Integrating Gemini for audio input in the composer",theme:"feature",tags:{complexity:"routine"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-4320*60*1e3).toISOString(),createdAt:new Date(Date.now()-4320*60*1e3).toISOString()},{sessionId:"stu901vwx234",insights:{purpose:"Refactor insights computation pipeline",description:"Breaking apart the monolithic InsightsComputer into focused services",theme:"refactor",tags:{complexity:"gnarly"}},sessionInfo:{customName:"Insights Refactor",identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-10080*60*1e3).toISOString(),createdAt:new Date(Date.now()-11520*60*1e3).toISOString()},{sessionId:"yzab567cdef8",insights:{purpose:"Debug memory leak in session polling",description:null,theme:"bugfix",tags:{complexity:"moderate"}},sessionInfo:{customName:null,identity_image:null},workingDirectory:"/home/jason/claudia",updatedAt:new Date(Date.now()-336*60*60*1e3).toISOString(),createdAt:new Date(Date.now()-336*60*60*1e3).toISOString()},{sessionId:"ghij901klmn2",insights:{purpose:"CK3 motto generation pipeline",description:"Generating culturally-appropriate house mottos for all CK3 cultures",theme:"project",tags:{complexity:"moderate"}},sessionInfo:{customName:"CK3 Mottos",identity_image:null},workingDirectory:"/mnt/c/Users/jason/Documents/ck3-motto-ideation",updatedAt:new Date(Date.now()-720*60*60*1e3).toISOString(),createdAt:new Date(Date.now()-840*60*60*1e3).toISOString()}];function c(s){const n=Date.now()-new Date(s).getTime(),t=Math.floor(n/6e4),r=Math.floor(t/60),o=Math.floor(r/24);return t<60?`${t}m ago`:r<24?`${r}h ago`:o<7?`${o}d ago`:o<30?`${Math.floor(o/7)}w ago`:new Date(s).toLocaleDateString()}function m(s){switch(s){case"ui":return"text-cyan-400 bg-cyan-500/10 border-cyan-500/30";case"infra":return"text-purple-400 bg-purple-500/10 border-purple-500/30";case"feature":return"text-emerald-400 bg-emerald-500/10 border-emerald-500/30";case"refactor":return"text-amber-400 bg-amber-500/10 border-amber-500/30";case"bugfix":return"text-rose-400 bg-rose-500/10 border-rose-500/30";case"project":return"text-blue-400 bg-blue-500/10 border-blue-500/30";default:return"text-muted-foreground/70 bg-muted/30 border-border/30"}}function f({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"flex items-center gap-4 p-3 rounded-md bg-card/30 border border-border/20 hover:border-rose-500/30 transition-all",children:[e.jsx("div",{className:"w-14 h-10 rounded-sm flex-shrink-0 bg-gradient-to-br from-muted/20 via-muted/10 to-muted/20 border border-border/20"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/90 truncate",children:r?.customName||t?.purpose||a.slice(0,8)}),e.jsxs("div",{className:"flex items-center gap-2 mt-1 text-[10px] font-mono text-muted-foreground/40",children:[e.jsx(x,{size:10}),e.jsx("span",{children:c(i)}),o&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"text-muted-foreground/20",children:"•"}),e.jsx("span",{className:"truncate max-w-[150px]",children:o.split("/").slice(-2).join("/")})]})]})]}),t?.theme&&e.jsx("span",{className:`text-[9px] px-1.5 py-0.5 rounded border font-display uppercase tracking-wider ${m(t.theme)}`,children:t.theme}),e.jsx("button",{onClick:n,className:"p-1.5 rounded-sm text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",title:"Restore",children:e.jsx(l,{size:14})})]})}function b({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"rounded-lg border border-border/20 overflow-hidden bg-card/30 hover:border-rose-500/30 hover:shadow-[2px_2px_0_rgba(244,63,94,0.2)] hover:translate-x-[-1px] hover:translate-y-[-1px] transition-all group",children:[e.jsx("div",{className:"h-10 bg-gradient-to-r from-muted/10 via-muted/20 to-muted/10 relative",children:t?.theme&&e.jsx("span",{className:`absolute top-1.5 right-1.5 text-[8px] px-1 py-0.5 rounded border font-display uppercase tracking-wider ${m(t.theme)}`,children:t.theme})}),e.jsxs("div",{className:"p-3",children:[e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/90 group-hover:text-rose-400 truncate transition-colors",children:r?.customName||t?.purpose||a.slice(0,8)}),t?.description&&e.jsx("p",{className:"text-[11px] text-muted-foreground/40 line-clamp-2 mt-1",children:t.description}),e.jsxs("div",{className:"flex items-center justify-between mt-2",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] font-mono text-muted-foreground/30",children:[e.jsx(x,{size:10}),e.jsx("span",{children:c(i)})]}),e.jsxs("button",{onClick:n,className:"flex items-center gap-1 px-2 py-1 rounded-sm text-[10px] font-mono text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",children:[e.jsx(l,{size:10}),e.jsx("span",{children:"Restore"})]})]})]})]})}function j({session:s,onRestore:n}){const{insights:t,sessionInfo:r,updatedAt:o,sessionId:i}=s;return e.jsxs("div",{className:"flex items-center gap-3 px-3 py-2 rounded-sm hover:bg-muted/20 transition-all group",children:[e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/30 w-12 flex-shrink-0",children:c(o)}),e.jsx("h3",{className:"flex-1 text-sm font-mono text-foreground/70 group-hover:text-rose-400 truncate transition-colors",children:r?.customName||t?.purpose||i.slice(0,8)}),t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded font-display uppercase ${m(t.theme)}`,children:t.theme}),e.jsx("button",{onClick:n,className:"opacity-0 group-hover:opacity-100 p-1 rounded-sm text-muted-foreground/40 hover:text-emerald-400 transition-all",children:e.jsx(l,{size:12})})]})}function v({session:s,onRestore:n}){const{insights:t,sessionInfo:r,updatedAt:o,sessionId:i}=s;return e.jsxs("div",{className:"p-2.5 rounded-md border border-border/20 bg-card/30 hover:border-rose-500/30 transition-all group",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx("h3",{className:"text-xs font-mono font-medium text-foreground/80 group-hover:text-rose-400 line-clamp-2 transition-colors",children:r?.customName||t?.purpose||i.slice(0,8)}),e.jsx("button",{onClick:n,className:"opacity-0 group-hover:opacity-100 p-0.5 rounded-sm text-muted-foreground/40 hover:text-emerald-400 transition-all flex-shrink-0",children:e.jsx(l,{size:10})})]}),e.jsxs("div",{className:"flex items-center gap-2 mt-2",children:[t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded font-display uppercase ${m(t.theme)}`,children:t.theme}),e.jsx("span",{className:"text-[9px] font-mono text-muted-foreground/30 ml-auto",children:c(o)})]})]})}function N({session:s,onRestore:n}){const{insights:t,sessionInfo:r,workingDirectory:o,updatedAt:i,sessionId:a}=s;return e.jsxs("div",{className:"flex gap-3 group",children:[e.jsxs("div",{className:"flex flex-col items-center",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-rose-500/40 group-hover:bg-rose-400 transition-colors"}),e.jsx("div",{className:"w-px flex-1 bg-border/30"})]}),e.jsxs("div",{className:"flex-1 pb-6",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("span",{className:"text-[10px] font-mono text-muted-foreground/40",children:c(i)}),t?.theme&&e.jsx("span",{className:`text-[8px] px-1 py-0.5 rounded border font-display uppercase ${m(t.theme)}`,children:t.theme})]}),e.jsx("h3",{className:"text-sm font-mono font-medium text-foreground/80 group-hover:text-rose-400 transition-colors",children:r?.customName||t?.purpose||a.slice(0,8)}),t?.description&&e.jsx("p",{className:"text-[11px] text-muted-foreground/40 mt-1 line-clamp-1",children:t.description}),o&&e.jsxs("div",{className:"flex items-center gap-1 mt-1.5 text-[10px] text-muted-foreground/30",children:[e.jsx(h,{size:10}),e.jsx("span",{className:"truncate",children:o.split("/").slice(-2).join("/")})]}),e.jsxs("button",{onClick:n,className:"mt-2 flex items-center gap-1 px-2 py-1 rounded-sm text-[10px] font-mono text-muted-foreground/40 hover:text-emerald-400 hover:bg-emerald-500/10 transition-all",children:[e.jsx(l,{size:10}),e.jsx("span",{children:"Restore"})]})]})]})}function y(){const[s,n]=p.useState("row"),t=()=>{console.log("Restore clicked")};return e.jsxs("div",{className:"min-h-dvh bg-background text-foreground",children:[e.jsx("div",{className:"fixed inset-0 bg-[linear-gradient(rgba(0,255,255,0.02)_1px,transparent_1px),linear-gradient(90deg,rgba(0,255,255,0.02)_1px,transparent_1px)] bg-[size:24px_24px] pointer-events-none"}),e.jsx("header",{className:"relative border-b border-border/30 bg-card/80 backdrop-blur-md sticky top-0 z-10",children:e.jsx("div",{className:"max-w-4xl mx-auto px-6 py-4 flex items-center justify-between",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(u,{to:"/dev",className:"p-2 -ml-2 rounded-sm text-muted-foreground hover:text-cyan-400 hover:bg-cyan-500/10 transition-all",children:e.jsx(g,{size:18})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-lg font-mono font-bold tracking-wider text-rose-400",children:"ARCHIVED CARD VARIATIONS"}),e.jsx("p",{className:"text-[10px] font-display uppercase tracking-wider text-muted-foreground/50",children:"Exploring layouts for archived session display"})]})]})})}),e.jsx("div",{className:"relative max-w-4xl mx-auto px-6 py-4 border-b border-border/20",children:e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:["row","grid","compact","mini","timeline"].map(r=>e.jsx("button",{onClick:()=>n(r),className:`
|
|
2
2
|
px-3 py-1.5 rounded-sm text-xs font-display font-bold uppercase tracking-wider
|
|
3
3
|
transition-all duration-100
|
|
4
4
|
${s===r?"bg-rose-500/20 text-rose-400 border border-rose-500/30":"text-muted-foreground hover:text-foreground border border-transparent hover:border-border/30"}
|