ltcai 7.0.0 → 7.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -20
- package/docs/CHANGELOG.md +23 -0
- package/frontend/src/App.tsx +80 -0
- package/frontend/src/api/client.ts +6 -0
- package/frontend/src/components/AdminAccessGate.tsx +70 -0
- package/frontend/src/components/BrainConversation.tsx +232 -8
- package/frontend/src/components/FeedbackState.tsx +45 -0
- package/frontend/src/components/WorkspaceProfileSwitcher.tsx +176 -0
- package/frontend/src/components/onboarding/AnalysisScreen.tsx +20 -12
- package/frontend/src/components/onboarding/InstallScreen.tsx +55 -0
- package/frontend/src/components/onboarding/RecommendationScreen.tsx +55 -5
- package/frontend/src/components/onboarding/recommendationModel.ts +59 -2
- package/frontend/src/features/brain/BrainConversation.tsx +232 -19
- package/frontend/src/features/brain/BrainGraphLayer.tsx +258 -25
- package/frontend/src/features/brain/BrainHome.tsx +193 -1
- package/frontend/src/features/brain/brainData.ts +25 -1
- package/frontend/src/features/brain/graphLayout.ts +12 -1
- package/frontend/src/features/brain/types.ts +41 -0
- package/frontend/src/i18n.ts +304 -0
- package/frontend/src/store/appStore.ts +15 -0
- package/frontend/src/styles.css +1130 -0
- package/lattice_brain/__init__.py +1 -1
- package/lattice_brain/runtime/multi_agent.py +1 -1
- package/latticeai/__init__.py +1 -1
- package/latticeai/api/workspace.py +59 -0
- package/latticeai/core/marketplace.py +1 -1
- package/latticeai/core/workspace_os.py +1 -1
- package/package.json +1 -1
- package/src-tauri/Cargo.lock +1 -1
- package/src-tauri/Cargo.toml +1 -1
- package/src-tauri/tauri.conf.json +1 -1
- package/static/app/asset-manifest.json +28 -28
- package/static/app/assets/Act-BHEb8bAM.js +2 -0
- package/static/app/assets/{Act-DhLaHnrT.js.map → Act-BHEb8bAM.js.map} +1 -1
- package/static/app/assets/Brain-yvR7xkrV.js +322 -0
- package/static/app/assets/Brain-yvR7xkrV.js.map +1 -0
- package/static/app/assets/{Capture-CAKouj52.js → Capture-BrAmsSEH.js} +2 -2
- package/static/app/assets/{Capture-CAKouj52.js.map → Capture-BrAmsSEH.js.map} +1 -1
- package/static/app/assets/Library-BOVzYfxI.js +2 -0
- package/static/app/assets/{Library-B_hW4AwR.js.map → Library-BOVzYfxI.js.map} +1 -1
- package/static/app/assets/System-D4WaN4kj.js +2 -0
- package/static/app/assets/System-D4WaN4kj.js.map +1 -0
- package/static/app/assets/index-BOB-W1FZ.js +17 -0
- package/static/app/assets/index-BOB-W1FZ.js.map +1 -0
- package/static/app/assets/{index-DKFpn5Kn.css → index-DvLsGy-z.css} +1 -1
- package/static/app/assets/primitives-C3_BfUb8.js +2 -0
- package/static/app/assets/primitives-C3_BfUb8.js.map +1 -0
- package/static/app/assets/textarea-CbvhHvzg.js +2 -0
- package/static/app/assets/{textarea-DR2Tyy_6.js.map → textarea-CbvhHvzg.js.map} +1 -1
- package/static/app/index.html +2 -2
- package/static/app/assets/Act-DhLaHnrT.js +0 -2
- package/static/app/assets/Brain-DS7NULyY.js +0 -322
- package/static/app/assets/Brain-DS7NULyY.js.map +0 -1
- package/static/app/assets/Library-B_hW4AwR.js +0 -2
- package/static/app/assets/System-9OAoXWPz.js +0 -2
- package/static/app/assets/System-9OAoXWPz.js.map +0 -1
- package/static/app/assets/index-C-7aHabu.js +0 -17
- package/static/app/assets/index-C-7aHabu.js.map +0 -1
- package/static/app/assets/primitives-DcO2H3yh.js +0 -2
- package/static/app/assets/primitives-DcO2H3yh.js.map +0 -1
- package/static/app/assets/textarea-DR2Tyy_6.js +0 -2
|
@@ -19,7 +19,7 @@ from datetime import datetime
|
|
|
19
19
|
from typing import Any, Callable, Dict, List, Optional
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
MULTI_AGENT_VERSION = "7.
|
|
22
|
+
MULTI_AGENT_VERSION = "7.1.0"
|
|
23
23
|
|
|
24
24
|
AGENT_ROLES = ("researcher", "planner", "executor", "reviewer", "release")
|
|
25
25
|
CORE_PIPELINE = ("planner", "executor", "reviewer")
|
package/latticeai/__init__.py
CHANGED
|
@@ -99,6 +99,25 @@ class WorkspaceVSCodeRequest(BaseModel):
|
|
|
99
99
|
content: str = ""
|
|
100
100
|
selection: str = ""
|
|
101
101
|
prompt: str = ""
|
|
102
|
+
extension_version: str = ""
|
|
103
|
+
workspace_folder: str = ""
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
class WorkspaceVSCodeStatusRequest(BaseModel):
|
|
107
|
+
status: str = "connected"
|
|
108
|
+
index_status: str = "unknown"
|
|
109
|
+
workspace_folder: str = ""
|
|
110
|
+
extension_version: str = ""
|
|
111
|
+
active_file: str = ""
|
|
112
|
+
detail: str = ""
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
_VSCODE_STATUS: Dict[str, object] = {
|
|
116
|
+
"connected": False,
|
|
117
|
+
"status": "offline",
|
|
118
|
+
"index_status": "unknown",
|
|
119
|
+
"last_seen_ms": 0,
|
|
120
|
+
}
|
|
102
121
|
|
|
103
122
|
|
|
104
123
|
class WorkspaceCreateRequest(BaseModel):
|
|
@@ -630,9 +649,49 @@ def create_workspace_router(context: AppContext) -> APIRouter:
|
|
|
630
649
|
|
|
631
650
|
# ── VS Code workflow bridge ───────────────────────────────────────────
|
|
632
651
|
|
|
652
|
+
@router.get("/workspace/vscode/status")
|
|
653
|
+
async def workspace_vscode_status(request: Request):
|
|
654
|
+
require_user(request)
|
|
655
|
+
last_seen = int(_VSCODE_STATUS.get("last_seen_ms") or 0)
|
|
656
|
+
now_ms = int(datetime.utcnow().timestamp() * 1000)
|
|
657
|
+
connected = last_seen > 0 and (now_ms - last_seen) < 60000
|
|
658
|
+
return {
|
|
659
|
+
**_VSCODE_STATUS,
|
|
660
|
+
"connected": connected,
|
|
661
|
+
"status": _VSCODE_STATUS.get("status") if connected else "offline",
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
@router.post("/workspace/vscode/status")
|
|
665
|
+
async def workspace_vscode_status_update(req: WorkspaceVSCodeStatusRequest, request: Request):
|
|
666
|
+
current_user = require_user(request)
|
|
667
|
+
now_ms = int(datetime.utcnow().timestamp() * 1000)
|
|
668
|
+
_VSCODE_STATUS.update({
|
|
669
|
+
"connected": True,
|
|
670
|
+
"status": req.status or "connected",
|
|
671
|
+
"index_status": req.index_status or "unknown",
|
|
672
|
+
"workspace_folder": req.workspace_folder,
|
|
673
|
+
"extension_version": req.extension_version,
|
|
674
|
+
"active_file": req.active_file,
|
|
675
|
+
"detail": req.detail,
|
|
676
|
+
"last_seen_ms": now_ms,
|
|
677
|
+
"user_email": current_user,
|
|
678
|
+
})
|
|
679
|
+
return {"status": "ok", **_VSCODE_STATUS}
|
|
680
|
+
|
|
633
681
|
@router.post("/workspace/vscode/send")
|
|
634
682
|
async def workspace_vscode_send(req: WorkspaceVSCodeRequest, request: Request):
|
|
635
683
|
current_user = require_user(request)
|
|
684
|
+
now_ms = int(datetime.utcnow().timestamp() * 1000)
|
|
685
|
+
_VSCODE_STATUS.update({
|
|
686
|
+
"connected": True,
|
|
687
|
+
"status": "synced",
|
|
688
|
+
"index_status": "synced",
|
|
689
|
+
"workspace_folder": req.workspace_folder,
|
|
690
|
+
"extension_version": req.extension_version,
|
|
691
|
+
"active_file": req.file_path or "",
|
|
692
|
+
"last_seen_ms": now_ms,
|
|
693
|
+
"user_email": current_user,
|
|
694
|
+
})
|
|
636
695
|
content = req.selection or req.content or req.prompt
|
|
637
696
|
workflow = WORKSPACE_OS.create_workflow(
|
|
638
697
|
name=f"VS Code: {req.action}",
|
|
@@ -19,7 +19,7 @@ from pathlib import Path
|
|
|
19
19
|
from typing import Any, Callable, Dict, Iterable, List, Optional
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
WORKSPACE_OS_VERSION = "7.
|
|
22
|
+
WORKSPACE_OS_VERSION = "7.1.0"
|
|
23
23
|
|
|
24
24
|
# Workspace types separate single-user Personal workspaces from shared
|
|
25
25
|
# Organization workspaces. Both keep the same local-first JSON store; the type
|
package/package.json
CHANGED
package/src-tauri/Cargo.lock
CHANGED
package/src-tauri/Cargo.toml
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "7.
|
|
2
|
+
"version": "7.1.0",
|
|
3
3
|
"generated_at": "vite",
|
|
4
4
|
"entrypoints": {
|
|
5
5
|
"app": "/static/app/index.html"
|
|
6
6
|
},
|
|
7
7
|
"assets": {
|
|
8
8
|
"../node_modules/@tauri-apps/api/core.js": "/static/app/assets/core-CwxXejkd.js",
|
|
9
|
-
"_primitives-
|
|
10
|
-
"_textarea-
|
|
11
|
-
"index.html": "/static/app/assets/index-
|
|
12
|
-
"assets/index-
|
|
13
|
-
"src/pages/Act.tsx": "/static/app/assets/Act-
|
|
14
|
-
"src/pages/Brain.tsx": "/static/app/assets/Brain-
|
|
15
|
-
"src/pages/Capture.tsx": "/static/app/assets/Capture-
|
|
16
|
-
"src/pages/Library.tsx": "/static/app/assets/Library-
|
|
17
|
-
"src/pages/System.tsx": "/static/app/assets/System-
|
|
9
|
+
"_primitives-C3_BfUb8.js": "/static/app/assets/primitives-C3_BfUb8.js",
|
|
10
|
+
"_textarea-CbvhHvzg.js": "/static/app/assets/textarea-CbvhHvzg.js",
|
|
11
|
+
"index.html": "/static/app/assets/index-BOB-W1FZ.js",
|
|
12
|
+
"assets/index-DvLsGy-z.css": "/static/app/assets/index-DvLsGy-z.css",
|
|
13
|
+
"src/pages/Act.tsx": "/static/app/assets/Act-BHEb8bAM.js",
|
|
14
|
+
"src/pages/Brain.tsx": "/static/app/assets/Brain-yvR7xkrV.js",
|
|
15
|
+
"src/pages/Capture.tsx": "/static/app/assets/Capture-BrAmsSEH.js",
|
|
16
|
+
"src/pages/Library.tsx": "/static/app/assets/Library-BOVzYfxI.js",
|
|
17
|
+
"src/pages/System.tsx": "/static/app/assets/System-D4WaN4kj.js"
|
|
18
18
|
},
|
|
19
19
|
"vite": {
|
|
20
20
|
"../node_modules/@tauri-apps/api/core.js": {
|
|
@@ -23,22 +23,22 @@
|
|
|
23
23
|
"src": "../node_modules/@tauri-apps/api/core.js",
|
|
24
24
|
"isDynamicEntry": true
|
|
25
25
|
},
|
|
26
|
-
"_primitives-
|
|
27
|
-
"file": "assets/primitives-
|
|
26
|
+
"_primitives-C3_BfUb8.js": {
|
|
27
|
+
"file": "assets/primitives-C3_BfUb8.js",
|
|
28
28
|
"name": "primitives",
|
|
29
29
|
"imports": [
|
|
30
30
|
"index.html"
|
|
31
31
|
]
|
|
32
32
|
},
|
|
33
|
-
"_textarea-
|
|
34
|
-
"file": "assets/textarea-
|
|
33
|
+
"_textarea-CbvhHvzg.js": {
|
|
34
|
+
"file": "assets/textarea-CbvhHvzg.js",
|
|
35
35
|
"name": "textarea",
|
|
36
36
|
"imports": [
|
|
37
37
|
"index.html"
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
40
|
"index.html": {
|
|
41
|
-
"file": "assets/index-
|
|
41
|
+
"file": "assets/index-BOB-W1FZ.js",
|
|
42
42
|
"name": "index",
|
|
43
43
|
"src": "index.html",
|
|
44
44
|
"isEntry": true,
|
|
@@ -51,59 +51,59 @@
|
|
|
51
51
|
"src/pages/System.tsx"
|
|
52
52
|
],
|
|
53
53
|
"css": [
|
|
54
|
-
"assets/index-
|
|
54
|
+
"assets/index-DvLsGy-z.css"
|
|
55
55
|
]
|
|
56
56
|
},
|
|
57
57
|
"src/pages/Act.tsx": {
|
|
58
|
-
"file": "assets/Act-
|
|
58
|
+
"file": "assets/Act-BHEb8bAM.js",
|
|
59
59
|
"name": "Act",
|
|
60
60
|
"src": "src/pages/Act.tsx",
|
|
61
61
|
"isDynamicEntry": true,
|
|
62
62
|
"imports": [
|
|
63
63
|
"index.html",
|
|
64
|
-
"_primitives-
|
|
65
|
-
"_textarea-
|
|
64
|
+
"_primitives-C3_BfUb8.js",
|
|
65
|
+
"_textarea-CbvhHvzg.js"
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
68
|
"src/pages/Brain.tsx": {
|
|
69
|
-
"file": "assets/Brain-
|
|
69
|
+
"file": "assets/Brain-yvR7xkrV.js",
|
|
70
70
|
"name": "Brain",
|
|
71
71
|
"src": "src/pages/Brain.tsx",
|
|
72
72
|
"isDynamicEntry": true,
|
|
73
73
|
"imports": [
|
|
74
74
|
"index.html",
|
|
75
|
-
"_primitives-
|
|
76
|
-
"_textarea-
|
|
75
|
+
"_primitives-C3_BfUb8.js",
|
|
76
|
+
"_textarea-CbvhHvzg.js"
|
|
77
77
|
]
|
|
78
78
|
},
|
|
79
79
|
"src/pages/Capture.tsx": {
|
|
80
|
-
"file": "assets/Capture-
|
|
80
|
+
"file": "assets/Capture-BrAmsSEH.js",
|
|
81
81
|
"name": "Capture",
|
|
82
82
|
"src": "src/pages/Capture.tsx",
|
|
83
83
|
"isDynamicEntry": true,
|
|
84
84
|
"imports": [
|
|
85
85
|
"index.html",
|
|
86
|
-
"_primitives-
|
|
86
|
+
"_primitives-C3_BfUb8.js"
|
|
87
87
|
]
|
|
88
88
|
},
|
|
89
89
|
"src/pages/Library.tsx": {
|
|
90
|
-
"file": "assets/Library-
|
|
90
|
+
"file": "assets/Library-BOVzYfxI.js",
|
|
91
91
|
"name": "Library",
|
|
92
92
|
"src": "src/pages/Library.tsx",
|
|
93
93
|
"isDynamicEntry": true,
|
|
94
94
|
"imports": [
|
|
95
95
|
"index.html",
|
|
96
|
-
"_primitives-
|
|
96
|
+
"_primitives-C3_BfUb8.js"
|
|
97
97
|
]
|
|
98
98
|
},
|
|
99
99
|
"src/pages/System.tsx": {
|
|
100
|
-
"file": "assets/System-
|
|
100
|
+
"file": "assets/System-D4WaN4kj.js",
|
|
101
101
|
"name": "System",
|
|
102
102
|
"src": "src/pages/System.tsx",
|
|
103
103
|
"isDynamicEntry": true,
|
|
104
104
|
"imports": [
|
|
105
105
|
"index.html",
|
|
106
|
-
"_primitives-
|
|
106
|
+
"_primitives-C3_BfUb8.js"
|
|
107
107
|
]
|
|
108
108
|
}
|
|
109
109
|
}
|