skilllite 0.1.0__py3-none-any.whl → 0.1.2__py3-none-any.whl
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.
- skilllite/__init__.py +1 -1
- skilllite/cli/__init__.py +19 -0
- skilllite/cli/__main__.py +10 -0
- skilllite/cli/binary.py +93 -0
- skilllite/cli/integrations/__init__.py +8 -0
- skilllite/cli/integrations/opencode.py +316 -0
- skilllite/cli/main.py +142 -0
- skilllite/cli/mcp.py +29 -0
- skilllite/core/__init__.py +2 -0
- skilllite/core/adapters/__init__.py +74 -0
- skilllite/core/adapters/langchain.py +362 -0
- skilllite/core/adapters/llamaindex.py +264 -0
- skilllite/core/handler.py +179 -4
- skilllite/core/loops.py +180 -15
- skilllite/core/manager.py +82 -15
- skilllite/core/metadata.py +14 -7
- skilllite/core/security.py +420 -0
- skilllite/mcp/server.py +537 -49
- skilllite/quick.py +14 -4
- skilllite/sandbox/context.py +155 -0
- skilllite/sandbox/execution_service.py +254 -0
- skilllite/sandbox/skillbox/executor.py +124 -19
- skilllite/sandbox/unified_executor.py +359 -0
- {skilllite-0.1.0.dist-info → skilllite-0.1.2.dist-info}/METADATA +151 -1
- skilllite-0.1.2.dist-info/RECORD +45 -0
- skilllite/cli.py +0 -217
- skilllite-0.1.0.dist-info/RECORD +0 -32
- {skilllite-0.1.0.dist-info → skilllite-0.1.2.dist-info}/WHEEL +0 -0
- {skilllite-0.1.0.dist-info → skilllite-0.1.2.dist-info}/entry_points.txt +0 -0
- {skilllite-0.1.0.dist-info → skilllite-0.1.2.dist-info}/licenses/LICENSE +0 -0
- {skilllite-0.1.0.dist-info → skilllite-0.1.2.dist-info}/top_level.txt +0 -0
skilllite/cli.py
DELETED
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Command-line interface for skilllite.
|
|
3
|
-
|
|
4
|
-
Provides commands for managing the skillbox binary, similar to
|
|
5
|
-
how Playwright provides `playwright install` for browser management.
|
|
6
|
-
|
|
7
|
-
Usage:
|
|
8
|
-
skilllite install # Download and install the sandbox binary
|
|
9
|
-
skilllite uninstall # Remove the installed binary
|
|
10
|
-
skilllite status # Show installation status
|
|
11
|
-
skilllite version # Show version information
|
|
12
|
-
skilllite mcp # Start MCP server
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
import argparse
|
|
16
|
-
import sys
|
|
17
|
-
from typing import List, Optional
|
|
18
|
-
|
|
19
|
-
from . import __version__
|
|
20
|
-
from .sandbox.skillbox import (
|
|
21
|
-
BINARY_VERSION,
|
|
22
|
-
get_platform,
|
|
23
|
-
install,
|
|
24
|
-
is_installed,
|
|
25
|
-
get_installed_version,
|
|
26
|
-
uninstall,
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
def print_status() -> None:
|
|
31
|
-
"""Print installation status."""
|
|
32
|
-
from .sandbox.skillbox import find_binary, get_binary_path
|
|
33
|
-
|
|
34
|
-
print("SkillLite Installation Status")
|
|
35
|
-
print("=" * 40)
|
|
36
|
-
|
|
37
|
-
if is_installed():
|
|
38
|
-
version = get_installed_version()
|
|
39
|
-
print(f"✓ skillbox is installed (v{version})")
|
|
40
|
-
print(f" Location: {get_binary_path()}")
|
|
41
|
-
else:
|
|
42
|
-
binary = find_binary()
|
|
43
|
-
if binary:
|
|
44
|
-
print(f"✓ skillbox found at: {binary}")
|
|
45
|
-
else:
|
|
46
|
-
print("✗ skillbox is not installed")
|
|
47
|
-
print(" Install with: skilllite install")
|
|
48
|
-
|
|
49
|
-
def cmd_install(args: argparse.Namespace) -> int:
|
|
50
|
-
"""Install the skillbox binary."""
|
|
51
|
-
try:
|
|
52
|
-
install(
|
|
53
|
-
version=args.version,
|
|
54
|
-
force=args.force,
|
|
55
|
-
show_progress=not args.quiet
|
|
56
|
-
)
|
|
57
|
-
return 0
|
|
58
|
-
except Exception as e:
|
|
59
|
-
print(f"Error: {e}", file=sys.stderr)
|
|
60
|
-
return 1
|
|
61
|
-
|
|
62
|
-
def cmd_uninstall(args: argparse.Namespace) -> int:
|
|
63
|
-
"""Uninstall the skillbox binary."""
|
|
64
|
-
try:
|
|
65
|
-
uninstall()
|
|
66
|
-
return 0
|
|
67
|
-
except Exception as e:
|
|
68
|
-
print(f"Error: {e}", file=sys.stderr)
|
|
69
|
-
return 1
|
|
70
|
-
|
|
71
|
-
def cmd_status(args: argparse.Namespace) -> int:
|
|
72
|
-
"""Show installation status."""
|
|
73
|
-
try:
|
|
74
|
-
print_status()
|
|
75
|
-
return 0
|
|
76
|
-
except Exception as e:
|
|
77
|
-
print(f"Error: {e}", file=sys.stderr)
|
|
78
|
-
return 1
|
|
79
|
-
|
|
80
|
-
def cmd_version(args: argparse.Namespace) -> int:
|
|
81
|
-
"""Show version information."""
|
|
82
|
-
print(f"skilllite Python SDK: v{__version__}")
|
|
83
|
-
print(f"skillbox binary (bundled): v{BINARY_VERSION}")
|
|
84
|
-
|
|
85
|
-
installed_version = get_installed_version()
|
|
86
|
-
if installed_version:
|
|
87
|
-
print(f"skillbox binary (installed): v{installed_version}")
|
|
88
|
-
else:
|
|
89
|
-
print("skillbox binary (installed): not installed")
|
|
90
|
-
|
|
91
|
-
try:
|
|
92
|
-
plat = get_platform()
|
|
93
|
-
print(f"Platform: {plat}")
|
|
94
|
-
except RuntimeError as e:
|
|
95
|
-
print(f"Platform: {e}")
|
|
96
|
-
|
|
97
|
-
return 0
|
|
98
|
-
|
|
99
|
-
def cmd_mcp_server(args: argparse.Namespace) -> int:
|
|
100
|
-
"""Start MCP server."""
|
|
101
|
-
try:
|
|
102
|
-
import asyncio
|
|
103
|
-
from .mcp.server import main as mcp_main
|
|
104
|
-
|
|
105
|
-
asyncio.run(mcp_main())
|
|
106
|
-
return 0
|
|
107
|
-
except ImportError as e:
|
|
108
|
-
print("Error: MCP integration not available", file=sys.stderr)
|
|
109
|
-
print("Please install it with: pip install skilllite[mcp]", file=sys.stderr)
|
|
110
|
-
return 1
|
|
111
|
-
except KeyboardInterrupt:
|
|
112
|
-
print("\nMCP server stopped by user", file=sys.stderr)
|
|
113
|
-
return 0
|
|
114
|
-
except Exception as e:
|
|
115
|
-
import traceback
|
|
116
|
-
print(f"Error starting MCP server: {e}", file=sys.stderr)
|
|
117
|
-
traceback.print_exc()
|
|
118
|
-
return 1
|
|
119
|
-
|
|
120
|
-
def create_parser() -> argparse.ArgumentParser:
|
|
121
|
-
"""Create the argument parser."""
|
|
122
|
-
parser = argparse.ArgumentParser(
|
|
123
|
-
prog="skilllite",
|
|
124
|
-
description="SkillLite - A lightweight Skills execution engine with LLM integration",
|
|
125
|
-
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
126
|
-
epilog="""
|
|
127
|
-
Examples:
|
|
128
|
-
skilllite install Install the sandbox binary
|
|
129
|
-
skilllite install --force Force reinstall
|
|
130
|
-
skilllite status Check installation status
|
|
131
|
-
skilllite uninstall Remove the binary
|
|
132
|
-
skilllite mcp Start MCP server (requires pip install skilllite[mcp])
|
|
133
|
-
|
|
134
|
-
For more information, visit: https://github.com/skilllite/skilllite
|
|
135
|
-
"""
|
|
136
|
-
)
|
|
137
|
-
|
|
138
|
-
parser.add_argument(
|
|
139
|
-
"-V", "--version",
|
|
140
|
-
action="store_true",
|
|
141
|
-
help="Show version information"
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
subparsers = parser.add_subparsers(dest="command", help="Available commands")
|
|
145
|
-
|
|
146
|
-
# install command
|
|
147
|
-
install_parser = subparsers.add_parser(
|
|
148
|
-
"install",
|
|
149
|
-
help="Download and install the skillbox sandbox binary"
|
|
150
|
-
)
|
|
151
|
-
install_parser.add_argument(
|
|
152
|
-
"--version",
|
|
153
|
-
dest="version",
|
|
154
|
-
default=None,
|
|
155
|
-
help=f"Version to install (default: {BINARY_VERSION})"
|
|
156
|
-
)
|
|
157
|
-
install_parser.add_argument(
|
|
158
|
-
"--force", "-f",
|
|
159
|
-
action="store_true",
|
|
160
|
-
help="Force reinstall even if already installed"
|
|
161
|
-
)
|
|
162
|
-
install_parser.add_argument(
|
|
163
|
-
"--quiet", "-q",
|
|
164
|
-
action="store_true",
|
|
165
|
-
help="Suppress progress output"
|
|
166
|
-
)
|
|
167
|
-
install_parser.set_defaults(func=cmd_install)
|
|
168
|
-
|
|
169
|
-
# uninstall command
|
|
170
|
-
uninstall_parser = subparsers.add_parser(
|
|
171
|
-
"uninstall",
|
|
172
|
-
help="Remove the installed skillbox binary"
|
|
173
|
-
)
|
|
174
|
-
uninstall_parser.set_defaults(func=cmd_uninstall)
|
|
175
|
-
|
|
176
|
-
# status command
|
|
177
|
-
status_parser = subparsers.add_parser(
|
|
178
|
-
"status",
|
|
179
|
-
help="Show installation status"
|
|
180
|
-
)
|
|
181
|
-
status_parser.set_defaults(func=cmd_status)
|
|
182
|
-
|
|
183
|
-
# version command (alternative to -V)
|
|
184
|
-
version_parser = subparsers.add_parser(
|
|
185
|
-
"version",
|
|
186
|
-
help="Show version information"
|
|
187
|
-
)
|
|
188
|
-
version_parser.set_defaults(func=cmd_version)
|
|
189
|
-
|
|
190
|
-
# mcp command
|
|
191
|
-
mcp_parser = subparsers.add_parser(
|
|
192
|
-
"mcp",
|
|
193
|
-
help="Start MCP server for SkillLite"
|
|
194
|
-
)
|
|
195
|
-
mcp_parser.set_defaults(func=cmd_mcp_server)
|
|
196
|
-
|
|
197
|
-
return parser
|
|
198
|
-
|
|
199
|
-
def main(argv: Optional[List[str]] = None) -> int:
|
|
200
|
-
"""Main entry point for the CLI."""
|
|
201
|
-
parser = create_parser()
|
|
202
|
-
args = parser.parse_args(argv)
|
|
203
|
-
|
|
204
|
-
# Handle -V/--version flag
|
|
205
|
-
if args.version:
|
|
206
|
-
return cmd_version(args)
|
|
207
|
-
|
|
208
|
-
# Handle no command
|
|
209
|
-
if not args.command:
|
|
210
|
-
parser.print_help()
|
|
211
|
-
return 0
|
|
212
|
-
|
|
213
|
-
# Execute the command
|
|
214
|
-
return args.func(args)
|
|
215
|
-
|
|
216
|
-
if __name__ == "__main__":
|
|
217
|
-
sys.exit(main())
|
skilllite-0.1.0.dist-info/RECORD
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
skilllite/__init__.py,sha256=Ws0SEhXeqPTme-ASatdgkIba49zhZItN1Xlh2TVdhDY,3984
|
|
2
|
-
skilllite/analyzer.py,sha256=YG-ZJ6bO59pkP8LGECjcyCDPpH6wUYOm5QGx6et-ItA,14504
|
|
3
|
-
skilllite/builtin_tools.py,sha256=MGIlMlYTfj590PCY4ngbQteDIryfH7sDoKQyrDTH6L8,8067
|
|
4
|
-
skilllite/cli.py,sha256=Ns_wjCWz3Lh67P6QB7HYe2gM94FG8mEwKvPnQIx9uqI,6209
|
|
5
|
-
skilllite/quick.py,sha256=TNqKaww92WHUMf9nkjMZkdVjzz222lOKyjCwNp90_9c,16132
|
|
6
|
-
skilllite/validation.py,sha256=K3Hn6VKT7aybdKX8GXSRaxLbKmyVAnMYmP9cqh-D4s4,4308
|
|
7
|
-
skilllite/core/__init__.py,sha256=nU9yWE_M7xuWaIa1Ks_0dPfilRpW9GhlKfTV6eEU7-U,2044
|
|
8
|
-
skilllite/core/executor.py,sha256=eNPcVKxKcLUjHJ7K2hstKtxobZiDIvPjk2IhbZv3nxo,6517
|
|
9
|
-
skilllite/core/handler.py,sha256=pbQo5Gv-YSecufqpVbC0y8KP7Ra4uxxYpOW1nBimn5g,10354
|
|
10
|
-
skilllite/core/loops.py,sha256=2LEIyhYbHAR5YqvkyQeoRLYJPbKoEPaBK_wSMo47wKI,32210
|
|
11
|
-
skilllite/core/manager.py,sha256=uYAO5JtHM4DQvPnybBChHe0hUdOse1yBiQyc7vZ4nB8,19798
|
|
12
|
-
skilllite/core/metadata.py,sha256=mdZdK-qfK7wSaZrAAn2U25k0I63NrYuibtBHIrYR5RA,11221
|
|
13
|
-
skilllite/core/prompt_builder.py,sha256=rsubLzien9lKjOqM6iTn5nourPnz1-QQGzljiO0Z_3I,12844
|
|
14
|
-
skilllite/core/registry.py,sha256=AeljsV1uuYEJFGjpSwYxU6JGJ6EUuW8uNO3KirzHkuQ,6622
|
|
15
|
-
skilllite/core/skill_info.py,sha256=4_jsArmn1e7jEUXDEkmDAzjSI_903sdpfNLHOp1t1-M,6079
|
|
16
|
-
skilllite/core/tool_builder.py,sha256=k28ze50h7AjBiEfgKR6Y4DUFIGZJ1sCYbHEk_VkYl7w,12866
|
|
17
|
-
skilllite/core/tools.py,sha256=3RiAnZ_7S7iE6ZHXTPNKmAYQFY8SBUEzcQJZA0tZmX8,8168
|
|
18
|
-
skilllite/mcp/__init__.py,sha256=xrpoWy9zs8IJkW6fkkR4XjQrITo5PWvFW9NkmK8E2Fg,1028
|
|
19
|
-
skilllite/mcp/server.py,sha256=vhM0Kgjul1DZ5XFFKjuWZ0iksFP4nWl9n_bpiaakpTM,27912
|
|
20
|
-
skilllite/sandbox/__init__.py,sha256=6LPisVXB94SJ-C34nBAxd05NGEZR4PPxz2xaDpX4qEk,918
|
|
21
|
-
skilllite/sandbox/base.py,sha256=-Ul2QufoQ3myJNzBOEdv30A2HVSR9Oe4zEqpe9oJGqY,2628
|
|
22
|
-
skilllite/sandbox/config.py,sha256=eA3ceou6jF4S5kptv6cmIGKynQTaGDx3_vRrkJGQaAE,8207
|
|
23
|
-
skilllite/sandbox/utils.py,sha256=o5AZVkhqIcZE9veUy7FTfN7uMHVWJJLYXs7gYIXsptg,2572
|
|
24
|
-
skilllite/sandbox/skillbox/__init__.py,sha256=SFnNlLnnAc_NEEkqOkDbxYNfXROL7n1S09K_HFI_BOE,866
|
|
25
|
-
skilllite/sandbox/skillbox/binary.py,sha256=TNKQamWucMw-J6L5BjAasNpYqhBcBpHwQPMqjUOkgp4,11838
|
|
26
|
-
skilllite/sandbox/skillbox/executor.py,sha256=dXCR8JMwjD-x7-LfOCQbvgSq-29ZLIkXLp4oHed7b1Y,22872
|
|
27
|
-
skilllite-0.1.0.dist-info/licenses/LICENSE,sha256=ESBZ3GI5LkrbA2s5jZUQDqdcQ8oRlmk04aIYh34cOsw,1071
|
|
28
|
-
skilllite-0.1.0.dist-info/METADATA,sha256=-uHBXQuqfXHjGqsf5Qc5MELgUe9Lq_0UPUwpTFsyeTQ,8190
|
|
29
|
-
skilllite-0.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
30
|
-
skilllite-0.1.0.dist-info/entry_points.txt,sha256=H-meSKN3XzctxMvY6fa-YjAWyzs9t_0IjujOfumn4Wk,84
|
|
31
|
-
skilllite-0.1.0.dist-info/top_level.txt,sha256=aqo-9FEJuBbFT7WGE3aycTj27OxyQPCN6TuZtOcClAI,10
|
|
32
|
-
skilllite-0.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|