@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.
Files changed (35) hide show
  1. package/README.md +115 -3
  2. package/dist/cli.js +6 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/create-agent.d.ts +7 -0
  5. package/dist/commands/create-agent.d.ts.map +1 -0
  6. package/dist/commands/create-agent.js +166 -0
  7. package/dist/commands/create-agent.js.map +1 -0
  8. package/dist/commands/info.d.ts.map +1 -1
  9. package/dist/commands/info.js +0 -7
  10. package/dist/commands/info.js.map +1 -1
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +42 -29
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/install.d.ts.map +1 -1
  15. package/dist/commands/install.js +3 -1
  16. package/dist/commands/install.js.map +1 -1
  17. package/dist/commands/lint.d.ts.map +1 -1
  18. package/dist/commands/lint.js +7 -21
  19. package/dist/commands/lint.js.map +1 -1
  20. package/dist/commands/uninstall.d.ts.map +1 -1
  21. package/dist/commands/uninstall.js +0 -6
  22. package/dist/commands/uninstall.js.map +1 -1
  23. package/dist/templates/agent-python.d.ts +14 -0
  24. package/dist/templates/agent-python.d.ts.map +1 -0
  25. package/dist/templates/agent-python.js +185 -0
  26. package/dist/templates/agent-python.js.map +1 -0
  27. package/dist/templates/agent-typescript.d.ts +18 -0
  28. package/dist/templates/agent-typescript.d.ts.map +1 -0
  29. package/dist/templates/agent-typescript.js +209 -0
  30. package/dist/templates/agent-typescript.js.map +1 -0
  31. package/dist/templates/python.d.ts +13 -1
  32. package/dist/templates/python.d.ts.map +1 -1
  33. package/dist/templates/python.js +306 -2
  34. package/dist/templates/python.js.map +1 -1
  35. package/package.json +3 -3
@@ -1,2 +1,14 @@
1
- export {};
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"}
@@ -1,3 +1,307 @@
1
- export {};
2
- // Stub Python scaffold template not yet implemented
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":";AAAA,sDAAsD"}
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.14.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.14.0",
29
- "@trikhub/manifest": "0.14.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",