@trikhub/cli 0.14.0 → 0.16.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 +115 -3
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/create-agent.d.ts +7 -0
- package/dist/commands/create-agent.d.ts.map +1 -0
- package/dist/commands/create-agent.js +166 -0
- package/dist/commands/create-agent.js.map +1 -0
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +0 -7
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +42 -29
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +3 -1
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/lint.d.ts.map +1 -1
- package/dist/commands/lint.js +7 -21
- package/dist/commands/lint.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +0 -6
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/templates/agent-python.d.ts +14 -0
- package/dist/templates/agent-python.d.ts.map +1 -0
- package/dist/templates/agent-python.js +185 -0
- package/dist/templates/agent-python.js.map +1 -0
- package/dist/templates/agent-typescript.d.ts +18 -0
- package/dist/templates/agent-typescript.d.ts.map +1 -0
- package/dist/templates/agent-typescript.js +209 -0
- package/dist/templates/agent-typescript.js.map +1 -0
- package/dist/templates/python.d.ts +13 -1
- package/dist/templates/python.d.ts.map +1 -1
- package/dist/templates/python.js +306 -2
- package/dist/templates/python.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* v2 Python scaffold template.
|
|
3
|
+
*
|
|
4
|
+
* Generates a complete v2 trik project structure for Python,
|
|
5
|
+
* mirroring the TypeScript template but using Python conventions.
|
|
6
|
+
*/
|
|
7
|
+
import type { InitConfig } from './typescript.js';
|
|
8
|
+
/**
|
|
9
|
+
* Generate a complete v2 Python trik project.
|
|
10
|
+
*
|
|
11
|
+
* @returns Map of { relativePath: fileContent } for all project files.
|
|
12
|
+
*/
|
|
13
|
+
export declare function generatePythonProject(config: InitConfig): Record<string, string>;
|
|
2
14
|
//# sourceMappingURL=python.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/templates/python.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"python.d.ts","sourceRoot":"","sources":["../../src/templates/python.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA2TlD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBhF"}
|
package/dist/templates/python.js
CHANGED
|
@@ -1,3 +1,307 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* v2 Python scaffold template.
|
|
3
|
+
*
|
|
4
|
+
* Generates a complete v2 trik project structure for Python,
|
|
5
|
+
* mirroring the TypeScript template but using Python conventions.
|
|
6
|
+
*/
|
|
7
|
+
// ============================================================================
|
|
8
|
+
// Helpers
|
|
9
|
+
// ============================================================================
|
|
10
|
+
/** Convert trik name (dashes) to Python package name (underscores) */
|
|
11
|
+
function toPythonPackage(name) {
|
|
12
|
+
return name.replace(/-/g, '_');
|
|
13
|
+
}
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// File generators
|
|
16
|
+
// ============================================================================
|
|
17
|
+
function generateManifest(config) {
|
|
18
|
+
const isToolMode = config.agentMode === 'tool';
|
|
19
|
+
const pkg = toPythonPackage(config.name);
|
|
20
|
+
const agent = {
|
|
21
|
+
mode: config.agentMode,
|
|
22
|
+
domain: config.domainTags,
|
|
23
|
+
};
|
|
24
|
+
if (!isToolMode) {
|
|
25
|
+
agent.handoffDescription = config.handoffDescription;
|
|
26
|
+
agent.systemPromptFile = `./src/${pkg}/prompts/system.md`;
|
|
27
|
+
agent.model = { capabilities: ['tool_use'] };
|
|
28
|
+
}
|
|
29
|
+
const manifest = {
|
|
30
|
+
schemaVersion: 2,
|
|
31
|
+
id: config.name,
|
|
32
|
+
name: config.displayName,
|
|
33
|
+
description: config.description,
|
|
34
|
+
version: '0.1.0',
|
|
35
|
+
agent,
|
|
36
|
+
};
|
|
37
|
+
// Tools block
|
|
38
|
+
if (isToolMode && config.toolNames.length > 0) {
|
|
39
|
+
const tools = {};
|
|
40
|
+
for (const toolName of config.toolNames) {
|
|
41
|
+
tools[toolName] = {
|
|
42
|
+
description: `TODO: describe ${toolName}`,
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
properties: {
|
|
46
|
+
query: { type: 'string', maxLength: 200 },
|
|
47
|
+
},
|
|
48
|
+
required: ['query'],
|
|
49
|
+
},
|
|
50
|
+
outputSchema: {
|
|
51
|
+
type: 'object',
|
|
52
|
+
properties: {
|
|
53
|
+
status: { type: 'string', enum: ['success', 'error'] },
|
|
54
|
+
resultId: { type: 'string', format: 'id' },
|
|
55
|
+
},
|
|
56
|
+
required: ['status'],
|
|
57
|
+
},
|
|
58
|
+
outputTemplate: `${toolName}: {{status}} ({{resultId}})`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
manifest.tools = tools;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
manifest.tools = {
|
|
65
|
+
exampleTool: {
|
|
66
|
+
description: 'An example tool',
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (config.enableStorage) {
|
|
71
|
+
manifest.capabilities = {
|
|
72
|
+
storage: { enabled: true },
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
manifest.limits = { maxTurnTimeMs: 30000 };
|
|
76
|
+
manifest.entry = {
|
|
77
|
+
module: `./src/${pkg}/main.py`,
|
|
78
|
+
export: 'default',
|
|
79
|
+
runtime: 'python',
|
|
80
|
+
};
|
|
81
|
+
manifest.author = config.authorName;
|
|
82
|
+
if (config.enableConfig) {
|
|
83
|
+
manifest.config = {
|
|
84
|
+
optional: [
|
|
85
|
+
{ key: 'ANTHROPIC_API_KEY', description: 'Anthropic API key for the agent' },
|
|
86
|
+
],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return JSON.stringify(manifest, null, 2);
|
|
90
|
+
}
|
|
91
|
+
function generateTrikhubJson(config) {
|
|
92
|
+
const metadata = {
|
|
93
|
+
displayName: config.displayName,
|
|
94
|
+
shortDescription: config.description,
|
|
95
|
+
categories: [config.category],
|
|
96
|
+
keywords: [],
|
|
97
|
+
author: {
|
|
98
|
+
name: config.authorName,
|
|
99
|
+
github: config.authorGithub,
|
|
100
|
+
},
|
|
101
|
+
repository: `https://github.com/${config.authorGithub}/${config.name}`,
|
|
102
|
+
};
|
|
103
|
+
return JSON.stringify(metadata, null, 2);
|
|
104
|
+
}
|
|
105
|
+
function generatePyprojectToml(config) {
|
|
106
|
+
const isToolMode = config.agentMode === 'tool';
|
|
107
|
+
const pkg = toPythonPackage(config.name);
|
|
108
|
+
const deps = [' "trikhub-sdk>=0.1.0",'];
|
|
109
|
+
if (!isToolMode) {
|
|
110
|
+
deps.push(' "langchain-anthropic>=0.3.0",');
|
|
111
|
+
deps.push(' "langchain-core>=0.3.0",');
|
|
112
|
+
deps.push(' "langgraph>=0.2.0",');
|
|
113
|
+
}
|
|
114
|
+
return `[build-system]
|
|
115
|
+
requires = ["setuptools>=61.0", "wheel"]
|
|
116
|
+
build-backend = "setuptools.build_meta"
|
|
117
|
+
|
|
118
|
+
[project]
|
|
119
|
+
name = "${config.name}"
|
|
120
|
+
version = "0.1.0"
|
|
121
|
+
description = "${config.description}"
|
|
122
|
+
requires-python = ">=3.10"
|
|
123
|
+
license = "MIT"
|
|
124
|
+
|
|
125
|
+
dependencies = [
|
|
126
|
+
${deps.join('\n')}
|
|
127
|
+
]
|
|
128
|
+
|
|
129
|
+
[tool.setuptools.packages.find]
|
|
130
|
+
where = ["src"]
|
|
131
|
+
include = ["${pkg}*"]
|
|
132
|
+
`;
|
|
133
|
+
}
|
|
134
|
+
function generateToolModeMain(config) {
|
|
135
|
+
const handlers = config.toolNames.map((name) => `async def ${toSnakeCase(name)}(input: dict[str, Any], context: TrikContext) -> dict[str, Any]:
|
|
136
|
+
# TODO: Implement ${name}
|
|
137
|
+
return {"result": "Not implemented"}`).join('\n\n\n');
|
|
138
|
+
const handlerMap = config.toolNames.map((name) => ` "${name}": ${toSnakeCase(name)},`).join('\n');
|
|
139
|
+
return `"""
|
|
140
|
+
${config.displayName} — tool-mode trik.
|
|
141
|
+
|
|
142
|
+
Exports native tools to the main agent. No handoff, no session.
|
|
143
|
+
Uses wrap_tool_handlers() for native tool export.
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
from typing import Any
|
|
147
|
+
|
|
148
|
+
from trikhub.sdk import wrap_tool_handlers, TrikContext
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
${handlers}
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
default = wrap_tool_handlers({
|
|
155
|
+
${handlerMap}
|
|
156
|
+
})
|
|
157
|
+
`;
|
|
158
|
+
}
|
|
159
|
+
function generateConversationalMain(config) {
|
|
160
|
+
const apiKeyAccess = config.enableConfig
|
|
161
|
+
? 'config.get("ANTHROPIC_API_KEY")'
|
|
162
|
+
: 'os.environ.get("ANTHROPIC_API_KEY")';
|
|
163
|
+
return `"""
|
|
164
|
+
${config.displayName} — conversational trik.
|
|
165
|
+
|
|
166
|
+
Uses the wrap_agent() pattern for multi-turn conversation via handoff.
|
|
167
|
+
"""
|
|
168
|
+
|
|
169
|
+
from __future__ import annotations
|
|
170
|
+
|
|
171
|
+
import os
|
|
172
|
+
from pathlib import Path
|
|
173
|
+
|
|
174
|
+
from langchain_anthropic import ChatAnthropic
|
|
175
|
+
from langchain_core.tools import tool
|
|
176
|
+
from langgraph.prebuilt import create_react_agent
|
|
177
|
+
|
|
178
|
+
from trikhub.sdk import wrap_agent, transfer_back_tool, TrikContext
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
_PROMPT_PATH = Path(__file__).parent / "prompts" / "system.md"
|
|
182
|
+
_SYSTEM_PROMPT = _PROMPT_PATH.read_text(encoding="utf-8")
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
@tool
|
|
186
|
+
async def example_tool(query: str) -> str:
|
|
187
|
+
"""An example tool — replace with your own implementation."""
|
|
188
|
+
return f"Processed: {query}"
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
default = wrap_agent(lambda context: create_react_agent(
|
|
192
|
+
model=ChatAnthropic(
|
|
193
|
+
model="claude-sonnet-4-20250514",
|
|
194
|
+
api_key=${apiKeyAccess},
|
|
195
|
+
),
|
|
196
|
+
tools=[example_tool, transfer_back_tool],
|
|
197
|
+
prompt=_SYSTEM_PROMPT,
|
|
198
|
+
))
|
|
199
|
+
`;
|
|
200
|
+
}
|
|
201
|
+
function generateMainPy(config) {
|
|
202
|
+
if (config.agentMode === 'tool') {
|
|
203
|
+
return generateToolModeMain(config);
|
|
204
|
+
}
|
|
205
|
+
return generateConversationalMain(config);
|
|
206
|
+
}
|
|
207
|
+
function generateSystemPrompt(config) {
|
|
208
|
+
const domainStr = config.domainTags.join(', ');
|
|
209
|
+
return `# ${config.displayName}
|
|
210
|
+
|
|
211
|
+
You are ${config.displayName}, a specialized assistant for ${config.description.toLowerCase()}.
|
|
212
|
+
|
|
213
|
+
## Your capabilities
|
|
214
|
+
- **example_tool**: An example tool
|
|
215
|
+
|
|
216
|
+
## Guidelines
|
|
217
|
+
- Focus on tasks within your domain: ${domainStr}
|
|
218
|
+
- When the user's request is outside your expertise, use the transfer_back tool
|
|
219
|
+
- Provide clear, actionable responses
|
|
220
|
+
|
|
221
|
+
## Transfer back
|
|
222
|
+
Use the \`transfer_back\` tool when:
|
|
223
|
+
- The user's request is outside your domain
|
|
224
|
+
- You've completed the task and the user wants to do something else
|
|
225
|
+
- The user explicitly asks to go back
|
|
226
|
+
`;
|
|
227
|
+
}
|
|
228
|
+
function generateGitignore() {
|
|
229
|
+
return `__pycache__/
|
|
230
|
+
*.egg-info/
|
|
231
|
+
*.pyc
|
|
232
|
+
dist/
|
|
233
|
+
build/
|
|
234
|
+
*.egg
|
|
235
|
+
.venv/
|
|
236
|
+
.env
|
|
237
|
+
.trikhub/secrets.json
|
|
238
|
+
`;
|
|
239
|
+
}
|
|
240
|
+
function generateReadme(config) {
|
|
241
|
+
const domainStr = config.domainTags.join(', ');
|
|
242
|
+
const isToolMode = config.agentMode === 'tool';
|
|
243
|
+
const pkg = toPythonPackage(config.name);
|
|
244
|
+
const devSection = isToolMode
|
|
245
|
+
? `- Implement your tool handlers in \`src/${pkg}/main.py\`
|
|
246
|
+
- Update inputSchema/outputSchema in \`manifest.json\``
|
|
247
|
+
: `- Edit your agent logic in \`src/${pkg}/main.py\`
|
|
248
|
+
- Add tools as \`@tool\` decorated functions
|
|
249
|
+
- Customize the system prompt in \`src/${pkg}/prompts/system.md\``;
|
|
250
|
+
const archSection = isToolMode
|
|
251
|
+
? `Tools from this trik appear as native tools on the main agent — no handoff, no session.`
|
|
252
|
+
: `The main agent routes conversations to this trik using a \`talk_to_${config.name}\` tool.
|
|
253
|
+
When done, use the \`transfer_back\` tool to return control.`;
|
|
254
|
+
return `# ${config.displayName}
|
|
255
|
+
|
|
256
|
+
${config.description}
|
|
257
|
+
|
|
258
|
+
## Getting Started
|
|
259
|
+
|
|
260
|
+
1. Create a virtual environment: \`python -m venv .venv && source .venv/bin/activate\`
|
|
261
|
+
2. Install dependencies: \`pip install -e .\`
|
|
262
|
+
3. Validate: \`trik lint .\`
|
|
263
|
+
4. Publish: \`trik publish\`
|
|
264
|
+
|
|
265
|
+
## Development
|
|
266
|
+
|
|
267
|
+
${devSection}
|
|
268
|
+
|
|
269
|
+
## Architecture
|
|
270
|
+
|
|
271
|
+
This trik uses the TrikHub v2 architecture:
|
|
272
|
+
- **Mode**: ${config.agentMode}
|
|
273
|
+
- **Domain**: ${domainStr}
|
|
274
|
+
|
|
275
|
+
${archSection}
|
|
276
|
+
`;
|
|
277
|
+
}
|
|
278
|
+
/** Convert camelCase to snake_case */
|
|
279
|
+
function toSnakeCase(str) {
|
|
280
|
+
return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
281
|
+
}
|
|
282
|
+
// ============================================================================
|
|
283
|
+
// Public API
|
|
284
|
+
// ============================================================================
|
|
285
|
+
/**
|
|
286
|
+
* Generate a complete v2 Python trik project.
|
|
287
|
+
*
|
|
288
|
+
* @returns Map of { relativePath: fileContent } for all project files.
|
|
289
|
+
*/
|
|
290
|
+
export function generatePythonProject(config) {
|
|
291
|
+
const files = {};
|
|
292
|
+
const pkg = toPythonPackage(config.name);
|
|
293
|
+
// Core config files (at project root)
|
|
294
|
+
files['manifest.json'] = generateManifest(config);
|
|
295
|
+
files['trikhub.json'] = generateTrikhubJson(config);
|
|
296
|
+
files['pyproject.toml'] = generatePyprojectToml(config);
|
|
297
|
+
files['.gitignore'] = generateGitignore();
|
|
298
|
+
files['README.md'] = generateReadme(config);
|
|
299
|
+
// Python package files
|
|
300
|
+
files[`src/${pkg}/__init__.py`] = '';
|
|
301
|
+
files[`src/${pkg}/main.py`] = generateMainPy(config);
|
|
302
|
+
if (config.agentMode === 'conversational') {
|
|
303
|
+
files[`src/${pkg}/prompts/system.md`] = generateSystemPrompt(config);
|
|
304
|
+
}
|
|
305
|
+
return files;
|
|
306
|
+
}
|
|
3
307
|
//# sourceMappingURL=python.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/templates/python.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"python.js","sourceRoot":"","sources":["../../src/templates/python.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trikhub/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "CLI for TrikHub - Teaching AI new triks",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"commander": "^12.1.0",
|
|
26
26
|
"ora": "^8.0.1",
|
|
27
27
|
"semver": "^7.6.3",
|
|
28
|
-
"@trikhub/linter": "0.
|
|
29
|
-
"@trikhub/manifest": "0.
|
|
28
|
+
"@trikhub/linter": "0.16.0",
|
|
29
|
+
"@trikhub/manifest": "0.16.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/node": "^20.14.0",
|