@actrun_ai/tastekit-cli 0.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.
Files changed (57) hide show
  1. package/dist/cli.d.ts +8 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +67 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/commands/compile.d.ts +3 -0
  6. package/dist/commands/compile.d.ts.map +1 -0
  7. package/dist/commands/compile.js +61 -0
  8. package/dist/commands/compile.js.map +1 -0
  9. package/dist/commands/completion.d.ts +9 -0
  10. package/dist/commands/completion.d.ts.map +1 -0
  11. package/dist/commands/completion.js +191 -0
  12. package/dist/commands/completion.js.map +1 -0
  13. package/dist/commands/drift.d.ts +3 -0
  14. package/dist/commands/drift.d.ts.map +1 -0
  15. package/dist/commands/drift.js +175 -0
  16. package/dist/commands/drift.js.map +1 -0
  17. package/dist/commands/eval.d.ts +3 -0
  18. package/dist/commands/eval.d.ts.map +1 -0
  19. package/dist/commands/eval.js +147 -0
  20. package/dist/commands/eval.js.map +1 -0
  21. package/dist/commands/export.d.ts +3 -0
  22. package/dist/commands/export.d.ts.map +1 -0
  23. package/dist/commands/export.js +279 -0
  24. package/dist/commands/export.js.map +1 -0
  25. package/dist/commands/import.d.ts +3 -0
  26. package/dist/commands/import.d.ts.map +1 -0
  27. package/dist/commands/import.js +315 -0
  28. package/dist/commands/import.js.map +1 -0
  29. package/dist/commands/init.d.ts +5 -0
  30. package/dist/commands/init.d.ts.map +1 -0
  31. package/dist/commands/init.js +213 -0
  32. package/dist/commands/init.js.map +1 -0
  33. package/dist/commands/mcp.d.ts +3 -0
  34. package/dist/commands/mcp.d.ts.map +1 -0
  35. package/dist/commands/mcp.js +226 -0
  36. package/dist/commands/mcp.js.map +1 -0
  37. package/dist/commands/onboard.d.ts +6 -0
  38. package/dist/commands/onboard.d.ts.map +1 -0
  39. package/dist/commands/onboard.js +186 -0
  40. package/dist/commands/onboard.js.map +1 -0
  41. package/dist/commands/simulate.d.ts +3 -0
  42. package/dist/commands/simulate.d.ts.map +1 -0
  43. package/dist/commands/simulate.js +14 -0
  44. package/dist/commands/simulate.js.map +1 -0
  45. package/dist/commands/skills.d.ts +3 -0
  46. package/dist/commands/skills.d.ts.map +1 -0
  47. package/dist/commands/skills.js +419 -0
  48. package/dist/commands/skills.js.map +1 -0
  49. package/dist/commands/trust.d.ts +3 -0
  50. package/dist/commands/trust.d.ts.map +1 -0
  51. package/dist/commands/trust.js +183 -0
  52. package/dist/commands/trust.js.map +1 -0
  53. package/dist/ui.d.ts +70 -0
  54. package/dist/ui.d.ts.map +1 -0
  55. package/dist/ui.js +144 -0
  56. package/dist/ui.js.map +1 -0
  57. package/package.json +51 -0
@@ -0,0 +1,147 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { existsSync, readFileSync, readdirSync, writeFileSync, mkdirSync } from 'fs';
5
+ import { join } from 'path';
6
+ import { EvalRunner } from '@actrun_ai/tastekit-core/eval';
7
+ import { Replay } from '@actrun_ai/tastekit-core/eval';
8
+ import { resolveArtifactPath } from '@actrun_ai/tastekit-core/utils';
9
+ import { getGlobalOptions, detail, hint, handleError, jsonOutput, verbose } from '../ui.js';
10
+ const evalRunCommand = new Command('run')
11
+ .description('Run evaluation pack')
12
+ .option('--pack <path>', 'Path to evaluation pack YAML/JSON file')
13
+ .option('--format <type>', 'Output format: json or summary', 'summary')
14
+ .action(async (options, cmd) => {
15
+ const globals = getGlobalOptions(cmd);
16
+ const workspacePath = process.cwd();
17
+ // Find eval pack
18
+ let evalPackPath = options.pack;
19
+ if (!evalPackPath) {
20
+ // Look in default location
21
+ const evalsDir = join(workspacePath, '.tastekit', 'evals');
22
+ if (existsSync(evalsDir)) {
23
+ const files = readdirSync(evalsDir).filter(f => f.endsWith('.json') || f.endsWith('.yaml'));
24
+ if (files.length > 0) {
25
+ evalPackPath = join(evalsDir, files[0]);
26
+ }
27
+ }
28
+ }
29
+ if (!evalPackPath || !existsSync(evalPackPath)) {
30
+ console.error(chalk.red('No evaluation pack found.'));
31
+ hint('--pack <path>', 'specify a pack');
32
+ hint('.tastekit/evals/', 'place eval packs here');
33
+ process.exit(1);
34
+ }
35
+ const spinner = ora('Running evaluation pack...').start();
36
+ try {
37
+ let evalPack;
38
+ const content = readFileSync(evalPackPath, 'utf-8');
39
+ if (evalPackPath.endsWith('.yaml') || evalPackPath.endsWith('.yml')) {
40
+ const YAML = await import('yaml');
41
+ evalPack = YAML.parse(content);
42
+ }
43
+ else {
44
+ evalPack = JSON.parse(content);
45
+ }
46
+ verbose(`Running eval pack: ${evalPack.name}`, globals);
47
+ const runner = new EvalRunner();
48
+ const report = await runner.runEvalPack(evalPack);
49
+ if (options.format === 'json' || globals.json) {
50
+ spinner.stop();
51
+ jsonOutput(report);
52
+ }
53
+ // Summary format
54
+ if (report.passed) {
55
+ spinner.succeed(chalk.green(`Evaluation passed (score: ${report.overall_score.toFixed(2)})`));
56
+ }
57
+ else {
58
+ spinner.fail(chalk.red(`Evaluation failed (score: ${report.overall_score.toFixed(2)})`));
59
+ }
60
+ console.log('');
61
+ console.log(chalk.bold(' Results:'));
62
+ for (const result of report.results) {
63
+ const icon = result.passed ? chalk.green('PASS') : chalk.red('FAIL');
64
+ console.log(` ${icon} ${result.scenario_id} (${result.score.toFixed(2)})`);
65
+ for (const judgment of result.judgments) {
66
+ if (!judgment.passed) {
67
+ console.log(chalk.red(` - ${judgment.rule_id}: ${judgment.reason || 'failed'}`));
68
+ }
69
+ }
70
+ }
71
+ console.log('');
72
+ detail('Pack', evalPack.name);
73
+ detail('Scenarios', String(report.results.length));
74
+ detail('Passed', `${report.results.filter((r) => r.passed).length}/${report.results.length}`);
75
+ // Save report
76
+ const reportsDir = join(workspacePath, '.tastekit', 'eval-reports');
77
+ mkdirSync(reportsDir, { recursive: true });
78
+ const reportPath = join(reportsDir, `${report.evalpack_id}_${Date.now()}.json`);
79
+ writeFileSync(reportPath, JSON.stringify(report, null, 2), 'utf-8');
80
+ detail('Report', reportPath);
81
+ }
82
+ catch (error) {
83
+ handleError(error, spinner);
84
+ }
85
+ });
86
+ const evalReplayCommand = new Command('replay')
87
+ .description('Replay trace against current profile for regression testing')
88
+ .option('--trace <path>', 'Path to trace file (JSONL)')
89
+ .action(async (options, cmd) => {
90
+ const globals = getGlobalOptions(cmd);
91
+ const workspacePath = process.cwd();
92
+ const constitutionPath = resolveArtifactPath(join(workspacePath, '.tastekit'), 'constitution');
93
+ if (!existsSync(constitutionPath)) {
94
+ console.error(chalk.red('No constitution found. Run `tastekit compile` first.'));
95
+ process.exit(1);
96
+ }
97
+ let tracePath = options.trace;
98
+ if (!tracePath) {
99
+ // Find most recent trace
100
+ const tracesDir = join(workspacePath, '.tastekit', 'traces');
101
+ if (existsSync(tracesDir)) {
102
+ const files = readdirSync(tracesDir)
103
+ .filter(f => f.endsWith('.jsonl'))
104
+ .sort()
105
+ .reverse();
106
+ if (files.length > 0) {
107
+ tracePath = join(tracesDir, files[0]);
108
+ }
109
+ }
110
+ }
111
+ if (!tracePath || !existsSync(tracePath)) {
112
+ console.error(chalk.red('No trace file found.'));
113
+ hint('--trace <path>', 'specify a trace');
114
+ process.exit(1);
115
+ }
116
+ const spinner = ora('Replaying trace against current profile...').start();
117
+ try {
118
+ verbose(`Replaying: ${tracePath}`, globals);
119
+ const constitution = JSON.parse(readFileSync(constitutionPath, 'utf-8'));
120
+ const replay = new Replay();
121
+ const result = replay.replayTrace(tracePath, constitution);
122
+ if (result.passed) {
123
+ spinner.succeed(chalk.green('Replay passed. No violations found.'));
124
+ }
125
+ else {
126
+ spinner.fail(chalk.red(`Replay found ${result.violations.length} violation(s)`));
127
+ console.log('');
128
+ for (const v of result.violations) {
129
+ console.log(chalk.red(` ${v.violation_type}: ${v.reason}`));
130
+ }
131
+ }
132
+ if (globals.json) {
133
+ jsonOutput(result);
134
+ }
135
+ console.log('');
136
+ detail('Trace', tracePath);
137
+ detail('Profile version', result.profile_version);
138
+ }
139
+ catch (error) {
140
+ handleError(error, spinner);
141
+ }
142
+ });
143
+ export const evalCommand = new Command('eval')
144
+ .description('Run evaluations')
145
+ .addCommand(evalRunCommand)
146
+ .addCommand(evalReplayCommand);
147
+ //# sourceMappingURL=eval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../../src/commands/eval.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const exportCommand: Command;
3
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AAiBlD,eAAO,MAAM,aAAa,SAyGtB,CAAC"}
@@ -0,0 +1,279 @@
1
+ import { Command, createOption } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
5
+ import { join } from 'path';
6
+ import YAML from 'yaml';
7
+ import { generateAgentsMd } from '@actrun_ai/tastekit-core/generators';
8
+ import { resolveArtifactPath, resolveSkillsPath } from '@actrun_ai/tastekit-core/utils';
9
+ import { detail, handleError } from '../ui.js';
10
+ const ADAPTERS = {
11
+ 'claude-code': 'Claude Code',
12
+ 'manus': 'Manus',
13
+ 'openclaw': 'OpenClaw',
14
+ 'autopilots': 'Autopilots',
15
+ };
16
+ export const exportCommand = new Command('export')
17
+ .description('Export to runtime adapter format')
18
+ .addOption(createOption('--target <adapter>', 'Target adapter').choices(['claude-code', 'manus', 'openclaw', 'autopilots', 'agents-md', 'agent-file']))
19
+ .option('--out <dir>', 'Output directory', './export')
20
+ .action(async (options) => {
21
+ if (!options.target) {
22
+ console.error(chalk.red('Please specify a target adapter with --target'));
23
+ console.log(chalk.gray('Available targets: claude-code, manus, openclaw, autopilots, agents-md, agent-file'));
24
+ process.exit(1);
25
+ }
26
+ const workspacePath = process.cwd();
27
+ const tastekitDir = join(workspacePath, '.tastekit');
28
+ if (!existsSync(tastekitDir)) {
29
+ console.error(chalk.red('No .tastekit directory found. Run `tastekit init` first.'));
30
+ process.exit(1);
31
+ }
32
+ const constitutionPath = resolveArtifactPath(tastekitDir, 'constitution');
33
+ if (!existsSync(constitutionPath)) {
34
+ console.error(chalk.red('No compiled artifacts found. Run `tastekit compile` first.'));
35
+ process.exit(1);
36
+ }
37
+ // Handle Agent File (.af) export
38
+ if (options.target === 'agent-file') {
39
+ const spinner = ora('Generating Agent File (.af) from TasteKit artifacts...').start();
40
+ try {
41
+ const constitution = parseYamlOrJson(constitutionPath);
42
+ // Read guardrails if available
43
+ const guardrailsPath = resolveArtifactPath(tastekitDir, 'guardrails');
44
+ const guardrails = existsSync(guardrailsPath)
45
+ ? parseYamlOrJson(guardrailsPath)
46
+ : null;
47
+ const af = generateAgentFile(constitution, guardrails);
48
+ const outDir = options.out === './export' ? workspacePath : options.out;
49
+ mkdirSync(outDir, { recursive: true });
50
+ const outPath = join(outDir, 'agent.af');
51
+ writeFileSync(outPath, JSON.stringify(af, null, 2), 'utf-8');
52
+ spinner.succeed(chalk.green(`Agent File exported to ${outPath}`));
53
+ }
54
+ catch (error) {
55
+ handleError(error, spinner);
56
+ }
57
+ return;
58
+ }
59
+ // Handle AGENTS.md export as a special case
60
+ if (options.target === 'agents-md') {
61
+ const spinner = ora('Generating AGENTS.md from TasteKit artifacts...').start();
62
+ try {
63
+ const constitution = parseYamlOrJson(constitutionPath);
64
+ const skillsManifestPath = join(resolveSkillsPath(tastekitDir), 'manifest.v1.yaml');
65
+ const skills = existsSync(skillsManifestPath)
66
+ ? parseYamlOrJson(skillsManifestPath)
67
+ : undefined;
68
+ const configPath = join(tastekitDir, 'tastekit.yaml');
69
+ const config = existsSync(configPath)
70
+ ? parseYamlOrJson(configPath)
71
+ : undefined;
72
+ const agentsMd = generateAgentsMd({
73
+ generator_version: constitution.generator_version || '0.5.0',
74
+ constitution,
75
+ skills,
76
+ domain_id: config?.domain_id,
77
+ });
78
+ const outPath = join(options.out === './export' ? workspacePath : options.out, 'AGENTS.md');
79
+ mkdirSync(join(outPath, '..'), { recursive: true });
80
+ writeFileSync(outPath, agentsMd, 'utf-8');
81
+ spinner.succeed(chalk.green(`AGENTS.md exported to ${outPath}`));
82
+ }
83
+ catch (error) {
84
+ handleError(error, spinner);
85
+ }
86
+ return;
87
+ }
88
+ if (!ADAPTERS[options.target]) {
89
+ console.error(chalk.red(`Unknown adapter: ${options.target}`));
90
+ console.log(chalk.gray(`Available: ${Object.keys(ADAPTERS).join(', ')}, agents-md`));
91
+ process.exit(1);
92
+ }
93
+ const spinner = ora(`Exporting to ${ADAPTERS[options.target]} format...`).start();
94
+ try {
95
+ // Dynamically load the adapter
96
+ const adapterModule = await loadAdapter(options.target);
97
+ const adapter = new adapterModule();
98
+ const outDir = options.out;
99
+ mkdirSync(outDir, { recursive: true });
100
+ await adapter.export(tastekitDir, outDir, {
101
+ includeSkills: true,
102
+ includePlaybooks: true,
103
+ });
104
+ spinner.succeed(chalk.green(`Exported to ${outDir}/`));
105
+ detail('Target', ADAPTERS[options.target]);
106
+ detail('Files written to', `${outDir}/`);
107
+ }
108
+ catch (error) {
109
+ handleError(error, spinner);
110
+ }
111
+ });
112
+ async function loadAdapter(target) {
113
+ switch (target) {
114
+ case 'claude-code': {
115
+ const mod = await import('@actrun_ai/tastekit-adapters/claude-code');
116
+ return mod.ClaudeCodeAdapter;
117
+ }
118
+ case 'manus': {
119
+ const mod = await import('@actrun_ai/tastekit-adapters/manus');
120
+ return mod.ManusAdapter;
121
+ }
122
+ case 'openclaw': {
123
+ const mod = await import('@actrun_ai/tastekit-adapters/openclaw');
124
+ return mod.OpenClawAdapter;
125
+ }
126
+ case 'autopilots': {
127
+ const mod = await import('@actrun_ai/tastekit-adapters/autopilots');
128
+ return mod.AutopilotsAdapter;
129
+ }
130
+ default:
131
+ throw new Error(`Unknown adapter: ${target}`);
132
+ }
133
+ }
134
+ function parseYamlOrJson(path) {
135
+ const content = readFileSync(path, 'utf-8');
136
+ try {
137
+ return JSON.parse(content);
138
+ }
139
+ catch {
140
+ return YAML.parse(content);
141
+ }
142
+ }
143
+ /**
144
+ * Generate a Letta Agent File (.af) v2 from TasteKit artifacts.
145
+ *
146
+ * Maps constitution principles to a persona block, tone to system prompt,
147
+ * and guardrails to tool_rules.
148
+ */
149
+ function generateAgentFile(constitution, guardrails) {
150
+ const blocks = [];
151
+ let blockIndex = 1;
152
+ // Persona block from principles
153
+ const personaLines = [];
154
+ if (constitution.principles?.length > 0) {
155
+ for (const p of constitution.principles) {
156
+ personaLines.push(`- ${p.statement}`);
157
+ }
158
+ }
159
+ if (constitution.tone?.voice_keywords?.length > 0) {
160
+ personaLines.push('');
161
+ personaLines.push(`Voice: ${constitution.tone.voice_keywords.join(', ')}`);
162
+ }
163
+ blocks.push({
164
+ id: `block-${blockIndex++}`,
165
+ label: 'persona',
166
+ value: personaLines.join('\n') || 'A helpful assistant.',
167
+ limit: 5000,
168
+ description: 'Agent personality and behavioral guidance. Generated by TasteKit.',
169
+ read_only: false,
170
+ is_template: false,
171
+ template_name: null,
172
+ });
173
+ // Preferences block from tone/tradeoffs
174
+ const prefLines = [];
175
+ if (constitution.tone?.forbidden_phrases?.length > 0) {
176
+ prefLines.push('Avoid these phrases:');
177
+ for (const phrase of constitution.tone.forbidden_phrases) {
178
+ prefLines.push(`- "${phrase}"`);
179
+ }
180
+ }
181
+ if (constitution.tone?.formatting_rules?.length > 0) {
182
+ prefLines.push('');
183
+ prefLines.push('Formatting:');
184
+ for (const rule of constitution.tone.formatting_rules) {
185
+ prefLines.push(`- ${rule}`);
186
+ }
187
+ }
188
+ if (prefLines.length > 0) {
189
+ blocks.push({
190
+ id: `block-${blockIndex++}`,
191
+ label: 'preferences',
192
+ value: prefLines.join('\n'),
193
+ limit: 5000,
194
+ description: 'User preferences and constraints. Generated by TasteKit.',
195
+ read_only: true,
196
+ is_template: false,
197
+ template_name: null,
198
+ });
199
+ }
200
+ // Taboos as a read-only constraints block
201
+ const tabooItems = constitution.taboos?.never_do || constitution.taboos || [];
202
+ if (tabooItems.length > 0) {
203
+ const tabooLines = ['Restrictions (never do):'];
204
+ for (const taboo of tabooItems) {
205
+ tabooLines.push(`- ${typeof taboo === 'string' ? taboo : taboo.statement || JSON.stringify(taboo)}`);
206
+ }
207
+ const escalateItems = constitution.taboos?.must_escalate || [];
208
+ if (escalateItems.length > 0) {
209
+ tabooLines.push('');
210
+ tabooLines.push('Must escalate to human:');
211
+ for (const item of escalateItems) {
212
+ tabooLines.push(`- ${item}`);
213
+ }
214
+ }
215
+ blocks.push({
216
+ id: `block-${blockIndex++}`,
217
+ label: 'custom_instructions',
218
+ value: tabooLines.join('\n'),
219
+ limit: 5000,
220
+ description: 'Safety constraints and escalation rules. Generated by TasteKit.',
221
+ read_only: true,
222
+ is_template: false,
223
+ template_name: null,
224
+ });
225
+ }
226
+ // Build system prompt
227
+ const systemLines = [
228
+ 'You are an AI assistant configured via TasteKit.',
229
+ ];
230
+ if (constitution.evidence_policy?.require_citations_for?.length > 0) {
231
+ systemLines.push(`You must provide citations for: ${constitution.evidence_policy.require_citations_for.join(', ')}.`);
232
+ }
233
+ if (constitution.evidence_policy?.uncertainty_language_rules?.length > 0) {
234
+ for (const rule of constitution.evidence_policy.uncertainty_language_rules) {
235
+ systemLines.push(rule);
236
+ }
237
+ }
238
+ // Map guardrails to tool_rules
239
+ const toolRules = [];
240
+ if (guardrails?.approvals) {
241
+ for (const approval of guardrails.approvals) {
242
+ if (approval.action === 'require_approval') {
243
+ toolRules.push({
244
+ type: 'require_approval',
245
+ tool_name: '*',
246
+ condition: approval.when,
247
+ });
248
+ }
249
+ }
250
+ }
251
+ const agent = {
252
+ id: 'agent-1',
253
+ name: 'tastekit-agent',
254
+ agent_type: 'letta_v1_agent',
255
+ system: systemLines.join('\n'),
256
+ description: `Agent generated from TasteKit constitution (v${constitution.generator_version || '0.5.0'})`,
257
+ block_ids: blocks.map(b => b.id),
258
+ tool_ids: [],
259
+ tool_rules: toolRules.length > 0 ? toolRules : undefined,
260
+ tags: ['origin:tastekit'],
261
+ messages: [],
262
+ };
263
+ return {
264
+ agents: [agent],
265
+ groups: [],
266
+ blocks,
267
+ files: [],
268
+ sources: [],
269
+ tools: [],
270
+ mcp_servers: [],
271
+ metadata: {
272
+ generator: 'tastekit',
273
+ generator_version: constitution.generator_version || '0.5.0',
274
+ exported_at: new Date().toISOString(),
275
+ },
276
+ created_at: new Date().toISOString(),
277
+ };
278
+ }
279
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/commands/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const importCommand: Command;
3
+ //# sourceMappingURL=import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,WAAW,CAAC;AAOlD,eAAO,MAAM,aAAa,SA6BtB,CAAC"}