@mastra/dane 0.0.2-alpha.98 → 0.0.2
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/package.json +12 -10
- package/dist/commands/changelog.d.ts +0 -2
- package/dist/commands/changelog.d.ts.map +0 -1
- package/dist/commands/changelog.js +0 -15
- package/dist/commands/commit-message.d.ts +0 -2
- package/dist/commands/commit-message.d.ts.map +0 -1
- package/dist/commands/commit-message.js +0 -32
- package/dist/commands/config.d.ts +0 -3
- package/dist/commands/config.d.ts.map +0 -1
- package/dist/commands/config.js +0 -40
- package/dist/commands/issue-labeler.d.ts +0 -2
- package/dist/commands/issue-labeler.d.ts.map +0 -1
- package/dist/commands/issue-labeler.js +0 -35
- package/dist/commands/link-checker.d.ts +0 -4
- package/dist/commands/link-checker.d.ts.map +0 -1
- package/dist/commands/link-checker.js +0 -16
- package/dist/commands/message.d.ts +0 -2
- package/dist/commands/message.d.ts.map +0 -1
- package/dist/commands/message.js +0 -14
- package/dist/commands/new-contributor-message.d.ts +0 -2
- package/dist/commands/new-contributor-message.d.ts.map +0 -1
- package/dist/commands/new-contributor-message.js +0 -43
- package/dist/commands/publish-packages.d.ts +0 -2
- package/dist/commands/publish-packages.d.ts.map +0 -1
- package/dist/commands/publish-packages.js +0 -11
- package/dist/commands/telephone-game.d.ts +0 -2
- package/dist/commands/telephone-game.d.ts.map +0 -1
- package/dist/commands/telephone-game.js +0 -32
- package/dist/config/index.d.ts +0 -12
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -75
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -37
- package/dist/mastra/agents/index.d.ts +0 -199
- package/dist/mastra/agents/index.d.ts.map +0 -1
- package/dist/mastra/agents/index.js +0 -113
- package/dist/mastra/agents/model.d.ts +0 -7
- package/dist/mastra/agents/model.d.ts.map +0 -1
- package/dist/mastra/agents/model.js +0 -7
- package/dist/mastra/agents/new-contributor.d.ts +0 -3
- package/dist/mastra/agents/new-contributor.d.ts.map +0 -1
- package/dist/mastra/agents/new-contributor.js +0 -12
- package/dist/mastra/agents/package-publisher.d.ts +0 -65
- package/dist/mastra/agents/package-publisher.d.ts.map +0 -1
- package/dist/mastra/agents/package-publisher.js +0 -168
- package/dist/mastra/index.d.ts +0 -325
- package/dist/mastra/index.d.ts.map +0 -1
- package/dist/mastra/index.js +0 -42
- package/dist/mastra/integrations/index.d.ts +0 -7
- package/dist/mastra/integrations/index.d.ts.map +0 -1
- package/dist/mastra/integrations/index.js +0 -29
- package/dist/mastra/tools/browser.d.ts +0 -40
- package/dist/mastra/tools/browser.d.ts.map +0 -1
- package/dist/mastra/tools/browser.js +0 -116
- package/dist/mastra/tools/calendar.d.ts +0 -21
- package/dist/mastra/tools/calendar.d.ts.map +0 -1
- package/dist/mastra/tools/calendar.js +0 -134
- package/dist/mastra/tools/crawl.d.ts +0 -36
- package/dist/mastra/tools/crawl.d.ts.map +0 -1
- package/dist/mastra/tools/crawl.js +0 -27
- package/dist/mastra/tools/execa.d.ts +0 -27
- package/dist/mastra/tools/execa.d.ts.map +0 -1
- package/dist/mastra/tools/execa.js +0 -43
- package/dist/mastra/tools/fs.d.ts +0 -33
- package/dist/mastra/tools/fs.d.ts.map +0 -1
- package/dist/mastra/tools/fs.js +0 -36
- package/dist/mastra/tools/image.d.ts +0 -27
- package/dist/mastra/tools/image.d.ts.map +0 -1
- package/dist/mastra/tools/image.js +0 -37
- package/dist/mastra/tools/mcp.d.ts +0 -3
- package/dist/mastra/tools/mcp.d.ts.map +0 -1
- package/dist/mastra/tools/mcp.js +0 -12
- package/dist/mastra/tools/pdf.d.ts +0 -21
- package/dist/mastra/tools/pdf.d.ts.map +0 -1
- package/dist/mastra/tools/pdf.js +0 -42
- package/dist/mastra/tools/pnpm.d.ts +0 -60
- package/dist/mastra/tools/pnpm.d.ts.map +0 -1
- package/dist/mastra/tools/pnpm.js +0 -127
- package/dist/mastra/workflows/changelog.d.ts +0 -10
- package/dist/mastra/workflows/changelog.d.ts.map +0 -1
- package/dist/mastra/workflows/changelog.js +0 -149
- package/dist/mastra/workflows/chat.d.ts +0 -13
- package/dist/mastra/workflows/chat.d.ts.map +0 -1
- package/dist/mastra/workflows/chat.js +0 -88
- package/dist/mastra/workflows/commit-message.d.ts +0 -10
- package/dist/mastra/workflows/commit-message.d.ts.map +0 -1
- package/dist/mastra/workflows/commit-message.js +0 -138
- package/dist/mastra/workflows/first-contributor.d.ts +0 -16
- package/dist/mastra/workflows/first-contributor.d.ts.map +0 -1
- package/dist/mastra/workflows/first-contributor.js +0 -122
- package/dist/mastra/workflows/index.d.ts +0 -4
- package/dist/mastra/workflows/index.d.ts.map +0 -1
- package/dist/mastra/workflows/index.js +0 -3
- package/dist/mastra/workflows/issue-labeler.d.ts +0 -16
- package/dist/mastra/workflows/issue-labeler.d.ts.map +0 -1
- package/dist/mastra/workflows/issue-labeler.js +0 -85
- package/dist/mastra/workflows/link-checker.d.ts +0 -13
- package/dist/mastra/workflows/link-checker.d.ts.map +0 -1
- package/dist/mastra/workflows/link-checker.js +0 -102
- package/dist/mastra/workflows/publish-packages.d.ts +0 -3
- package/dist/mastra/workflows/publish-packages.d.ts.map +0 -1
- package/dist/mastra/workflows/publish-packages.js +0 -257
- package/dist/mastra/workflows/telephone-game.d.ts +0 -3
- package/dist/mastra/workflows/telephone-game.d.ts.map +0 -1
- package/dist/mastra/workflows/telephone-game.js +0 -95
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { createTool } from '@mastra/core';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { execa, ExecaError } from 'execa';
|
|
4
|
-
import { readFileSync } from 'fs';
|
|
5
|
-
import path from 'path';
|
|
6
|
-
import { z } from 'zod';
|
|
7
|
-
export const pnpmBuild = createTool({
|
|
8
|
-
id: 'pnpmBuild',
|
|
9
|
-
name: 'PNPM Build Tool',
|
|
10
|
-
description: 'Used to build the pnpm module',
|
|
11
|
-
inputSchema: z.object({
|
|
12
|
-
name: z.string(),
|
|
13
|
-
packagePath: z.string(),
|
|
14
|
-
}),
|
|
15
|
-
outputSchema: z.object({
|
|
16
|
-
message: z.string(),
|
|
17
|
-
}),
|
|
18
|
-
execute: async ({ context: { name, packagePath } }) => {
|
|
19
|
-
try {
|
|
20
|
-
console.log(chalk.green(`\n Building: ${name} at ${packagePath}`));
|
|
21
|
-
const p = execa(`pnpm`, ['build'], {
|
|
22
|
-
stdio: 'inherit',
|
|
23
|
-
cwd: packagePath,
|
|
24
|
-
reject: false,
|
|
25
|
-
});
|
|
26
|
-
console.log(`\n`);
|
|
27
|
-
await p;
|
|
28
|
-
return { message: 'Done' };
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
console.error(e);
|
|
32
|
-
if (e instanceof ExecaError) {
|
|
33
|
-
return { message: e.message };
|
|
34
|
-
}
|
|
35
|
-
return { message: 'Error' };
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
export const pnpmChangesetStatus = createTool({
|
|
40
|
-
id: 'pnpmChangesetStatus',
|
|
41
|
-
name: 'PNPM Changeset Status Tool',
|
|
42
|
-
description: 'Used to check which pnpm modules need to be published',
|
|
43
|
-
inputSchema: z.object({}),
|
|
44
|
-
outputSchema: z.object({
|
|
45
|
-
message: z.array(z.string()),
|
|
46
|
-
}),
|
|
47
|
-
execute: async () => {
|
|
48
|
-
try {
|
|
49
|
-
console.log(chalk.green(`\nRunning command: pnpm publish -r --dry-run --no-git-checks`));
|
|
50
|
-
const { stdout } = await execa('pnpm', ['publish', '-r', '--dry-run', '--no-git-checks'], {
|
|
51
|
-
all: true,
|
|
52
|
-
// We want to see stderr too since pnpm sometimes puts important info there
|
|
53
|
-
});
|
|
54
|
-
const lines = stdout.split('\n');
|
|
55
|
-
const filteredLines = lines.filter(line => line.startsWith('+'));
|
|
56
|
-
const packages = filteredLines.map(line => line.trim().substring(2).split('@').slice(0, -1).join('@'));
|
|
57
|
-
return { message: packages };
|
|
58
|
-
}
|
|
59
|
-
catch (e) {
|
|
60
|
-
console.error(e);
|
|
61
|
-
if (e instanceof ExecaError) {
|
|
62
|
-
return { message: [e.message] };
|
|
63
|
-
}
|
|
64
|
-
return { message: ['Error'] };
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
export const pnpmChangesetPublish = createTool({
|
|
69
|
-
id: 'pnpmChangesetPublish',
|
|
70
|
-
name: 'PNPM Changeset Publish Tool',
|
|
71
|
-
description: 'Used to publish the pnpm module',
|
|
72
|
-
inputSchema: z.object({}),
|
|
73
|
-
outputSchema: z.object({
|
|
74
|
-
message: z.string(),
|
|
75
|
-
}),
|
|
76
|
-
execute: async () => {
|
|
77
|
-
try {
|
|
78
|
-
console.log(chalk.green(`Publishing...`));
|
|
79
|
-
const p = execa(`pnpm`, ['changeset', 'publish'], {
|
|
80
|
-
stdio: 'inherit',
|
|
81
|
-
reject: false,
|
|
82
|
-
});
|
|
83
|
-
console.log(`\n`);
|
|
84
|
-
await p;
|
|
85
|
-
return { message: 'Done' };
|
|
86
|
-
}
|
|
87
|
-
catch (e) {
|
|
88
|
-
console.error(e);
|
|
89
|
-
if (e instanceof ExecaError) {
|
|
90
|
-
return { message: e.message };
|
|
91
|
-
}
|
|
92
|
-
return { message: 'Error' };
|
|
93
|
-
}
|
|
94
|
-
},
|
|
95
|
-
});
|
|
96
|
-
export const activeDistTag = createTool({
|
|
97
|
-
id: 'activeDistTag',
|
|
98
|
-
name: 'PNPM Active Dist Tag Tool',
|
|
99
|
-
description: 'Set active dist tag on pnpm module',
|
|
100
|
-
inputSchema: z.object({
|
|
101
|
-
packagePath: z.string(),
|
|
102
|
-
}),
|
|
103
|
-
outputSchema: z.object({
|
|
104
|
-
message: z.string(),
|
|
105
|
-
}),
|
|
106
|
-
execute: async ({ context }) => {
|
|
107
|
-
try {
|
|
108
|
-
const pkgJson = JSON.parse(readFileSync(path.join(context.packagePath, 'package.json'), 'utf-8'));
|
|
109
|
-
const version = pkgJson.version;
|
|
110
|
-
console.log(chalk.green(`Setting active tag to latest for ${pkgJson.name}@${version}`));
|
|
111
|
-
const p = execa(`npm`, ['dist-tag', `add`, `${pkgJson.name}@${version}`, `latest`], {
|
|
112
|
-
stdio: 'inherit',
|
|
113
|
-
reject: false,
|
|
114
|
-
});
|
|
115
|
-
console.log(`\n`);
|
|
116
|
-
await p;
|
|
117
|
-
return { message: 'Done' };
|
|
118
|
-
}
|
|
119
|
-
catch (e) {
|
|
120
|
-
console.error(e);
|
|
121
|
-
if (e instanceof ExecaError) {
|
|
122
|
-
return { message: e.message };
|
|
123
|
-
}
|
|
124
|
-
return { message: 'Error' };
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
});
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Workflow } from '@mastra/core';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare const changelogWorkflow: Workflow<any, z.ZodObject<{
|
|
4
|
-
channelId: z.ZodString;
|
|
5
|
-
}, "strip", z.ZodTypeAny, {
|
|
6
|
-
channelId: string;
|
|
7
|
-
}, {
|
|
8
|
-
channelId: string;
|
|
9
|
-
}>>;
|
|
10
|
-
//# sourceMappingURL=changelog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../../src/mastra/workflows/changelog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;;GAK5B,CAAC"}
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { Step, Workflow } from '@mastra/core';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { execa } from 'execa';
|
|
4
|
-
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
import { slack } from '../tools/mcp.js';
|
|
7
|
-
export const changelogWorkflow = new Workflow({
|
|
8
|
-
name: 'changelog',
|
|
9
|
-
triggerSchema: z.object({
|
|
10
|
-
channelId: z.string(),
|
|
11
|
-
}),
|
|
12
|
-
});
|
|
13
|
-
const stepA1 = new Step({
|
|
14
|
-
id: 'stepA1',
|
|
15
|
-
description: 'Get a git diff',
|
|
16
|
-
outputSchema: z.object({
|
|
17
|
-
message: z.string(),
|
|
18
|
-
}),
|
|
19
|
-
execute: async () => {
|
|
20
|
-
console.log('SUH');
|
|
21
|
-
// For today
|
|
22
|
-
try {
|
|
23
|
-
await slack.connect();
|
|
24
|
-
}
|
|
25
|
-
catch (e) {
|
|
26
|
-
console.error(e);
|
|
27
|
-
}
|
|
28
|
-
const today = new Date().toISOString().split('T')[0];
|
|
29
|
-
console.log(today);
|
|
30
|
-
// For 7 days ago
|
|
31
|
-
const weekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString().split('T')[0];
|
|
32
|
-
console.log(weekAgo);
|
|
33
|
-
const cwd = process.cwd();
|
|
34
|
-
console.log(cwd);
|
|
35
|
-
const args = [
|
|
36
|
-
'--no-pager',
|
|
37
|
-
'diff',
|
|
38
|
-
'--unified=1', // Reduced context to 1 line
|
|
39
|
-
'--no-prefix',
|
|
40
|
-
'--color=never',
|
|
41
|
-
'--shortstat', // Get size first to check
|
|
42
|
-
`main@{${weekAgo}}`,
|
|
43
|
-
`main@{${today}}`,
|
|
44
|
-
'--',
|
|
45
|
-
'packages/**',
|
|
46
|
-
// 'docs/**'
|
|
47
|
-
];
|
|
48
|
-
console.log(args);
|
|
49
|
-
const p = execa('git', args, {
|
|
50
|
-
cwd,
|
|
51
|
-
});
|
|
52
|
-
try {
|
|
53
|
-
const diff = await p;
|
|
54
|
-
return {
|
|
55
|
-
message: diff.stdout,
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
catch (e) {
|
|
59
|
-
console.error(e);
|
|
60
|
-
return {
|
|
61
|
-
message: 'Error, do not compute',
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
},
|
|
65
|
-
});
|
|
66
|
-
const stepA2 = new Step({
|
|
67
|
-
id: 'stepA2',
|
|
68
|
-
description: 'Make changelog',
|
|
69
|
-
outputSchema: z.object({
|
|
70
|
-
message: z.string(),
|
|
71
|
-
}),
|
|
72
|
-
execute: async ({ context, mastra }) => {
|
|
73
|
-
if (context.machineContext?.stepResults.stepA1?.status !== 'success') {
|
|
74
|
-
throw new Error('Message not found');
|
|
75
|
-
}
|
|
76
|
-
const agent = mastra?.agents?.daneChangeLog;
|
|
77
|
-
if (!agent) {
|
|
78
|
-
throw new Error('LLM not found');
|
|
79
|
-
}
|
|
80
|
-
const today = new Date().toISOString().split('T')[0];
|
|
81
|
-
const weekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString().split('T')[0];
|
|
82
|
-
const tools = await slack.tools();
|
|
83
|
-
if (existsSync(`changelog-${today}`)) {
|
|
84
|
-
const existing = readFileSync(`changelog-${today}`, 'utf-8');
|
|
85
|
-
await agent.generate(`
|
|
86
|
-
Send this ${existing} to this slack channel: "${context.machineContext.triggerData.channelId}" with the tool slack_post_message.
|
|
87
|
-
Format it in markdown so it displays nicely in slack.
|
|
88
|
-
`, {
|
|
89
|
-
toolsets: {
|
|
90
|
-
slack: tools,
|
|
91
|
-
},
|
|
92
|
-
});
|
|
93
|
-
return {
|
|
94
|
-
message: existing,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
const channelId = context.machineContext.triggerData.channelId;
|
|
98
|
-
const prompt = `
|
|
99
|
-
Time: ${weekAgo} - ${today}
|
|
100
|
-
|
|
101
|
-
Git diff to generate from: ${context.machineContext.stepResults.stepA1.payload.message}
|
|
102
|
-
# Task
|
|
103
|
-
1. create a structured narrative changelog that highlights key updates and improvements.
|
|
104
|
-
2. Include what packages were changed
|
|
105
|
-
|
|
106
|
-
## Structure
|
|
107
|
-
|
|
108
|
-
1. Opening
|
|
109
|
-
- Brief welcome/context (1-2 sentences)
|
|
110
|
-
- Time period covered
|
|
111
|
-
|
|
112
|
-
2. Major Updates (3-4 key highlights)
|
|
113
|
-
- Lead with the most impactful changes
|
|
114
|
-
- Include brief technical context where needed
|
|
115
|
-
- Reference relevant PR numbers
|
|
116
|
-
- Link to examples/docs where applicable
|
|
117
|
-
|
|
118
|
-
3. Technical Improvements
|
|
119
|
-
- Group related changes
|
|
120
|
-
- Focus on developer impact
|
|
121
|
-
- Include code snippets if helpful
|
|
122
|
-
|
|
123
|
-
4. Documentation & Examples
|
|
124
|
-
- New guides/tutorials
|
|
125
|
-
- Updated examples
|
|
126
|
-
- API documentation changes
|
|
127
|
-
|
|
128
|
-
5. Bug Fixes & Infrastructure
|
|
129
|
-
- Notable bug fixes
|
|
130
|
-
- Build/deployment improvements
|
|
131
|
-
- Performance optimizations
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
Finally send this to this slack channel: "${channelId}" with the tool slack_post_message
|
|
135
|
-
`;
|
|
136
|
-
console.log(chalk.green(`Generating...`));
|
|
137
|
-
const result = await agent.generate(prompt, {
|
|
138
|
-
toolsets: {
|
|
139
|
-
slack: tools,
|
|
140
|
-
},
|
|
141
|
-
});
|
|
142
|
-
console.log(chalk.green(result.text));
|
|
143
|
-
writeFileSync(`changelog-${today}`, result.text);
|
|
144
|
-
return {
|
|
145
|
-
message: result.text,
|
|
146
|
-
};
|
|
147
|
-
},
|
|
148
|
-
});
|
|
149
|
-
changelogWorkflow.step(stepA1).then(stepA2).commit();
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Workflow } from '@mastra/core';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare const messageWorkflow: Workflow<any, z.ZodObject<{
|
|
4
|
-
resourceid: z.ZodString;
|
|
5
|
-
threadId: z.ZodString;
|
|
6
|
-
}, "strip", z.ZodTypeAny, {
|
|
7
|
-
resourceid: string;
|
|
8
|
-
threadId: string;
|
|
9
|
-
}, {
|
|
10
|
-
resourceid: string;
|
|
11
|
-
threadId: string;
|
|
12
|
-
}>>;
|
|
13
|
-
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/mastra/workflows/chat.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,eAAe;;;;;;;;;GAM1B,CAAC"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { input } from '@inquirer/prompts';
|
|
2
|
-
import { Step, Workflow } from '@mastra/core';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
import { dane } from '../agents/index.js';
|
|
6
|
-
export const messageWorkflow = new Workflow({
|
|
7
|
-
name: 'entry',
|
|
8
|
-
triggerSchema: z.object({
|
|
9
|
-
resourceid: z.string(),
|
|
10
|
-
threadId: z.string(),
|
|
11
|
-
}),
|
|
12
|
-
});
|
|
13
|
-
const messageStep = new Step({
|
|
14
|
-
id: 'message-input',
|
|
15
|
-
outputSchema: z.object({
|
|
16
|
-
message: z.string(),
|
|
17
|
-
}),
|
|
18
|
-
execute: async () => {
|
|
19
|
-
const content = await input({
|
|
20
|
-
message: '\n You:',
|
|
21
|
-
validate: input => input.trim().length > 0 || 'Message cannot be empty',
|
|
22
|
-
});
|
|
23
|
-
return { message: content };
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
const messageOutputStep = new Step({
|
|
27
|
-
id: 'message-output',
|
|
28
|
-
outputSchema: z.object({
|
|
29
|
-
message: z.string(),
|
|
30
|
-
}),
|
|
31
|
-
// SHOULD BE ABLE TO ACCESS ALL MASTRA PRIMS FROM EXECTUE
|
|
32
|
-
execute: async ({ context, mastra }) => {
|
|
33
|
-
// WISH THIS WAS TYPED
|
|
34
|
-
const threadId = context?.machineContext?.triggerData?.threadId;
|
|
35
|
-
const resourceid = context?.machineContext?.triggerData?.resourceid;
|
|
36
|
-
const messageInputStatus = context?.machineContext?.stepResults?.['message-input']?.status;
|
|
37
|
-
if (messageInputStatus !== 'success') {
|
|
38
|
-
return { message: 'Failure in workflow' };
|
|
39
|
-
}
|
|
40
|
-
// is there someway to know what steps are flowing into this one and type their props
|
|
41
|
-
const message = context?.machineContext?.stepResults?.['message-input']?.payload?.message;
|
|
42
|
-
try {
|
|
43
|
-
let messages = await mastra?.memory?.getContextWindow({
|
|
44
|
-
threadId,
|
|
45
|
-
format: 'core_message',
|
|
46
|
-
});
|
|
47
|
-
if (!messages || messages.length === 0) {
|
|
48
|
-
messages = [];
|
|
49
|
-
}
|
|
50
|
-
const res = await mastra?.agents?.['dane']?.stream(message, {
|
|
51
|
-
maxSteps: 5,
|
|
52
|
-
resourceid,
|
|
53
|
-
threadId,
|
|
54
|
-
context: [],
|
|
55
|
-
});
|
|
56
|
-
if (res) {
|
|
57
|
-
console.log(chalk.green(`\nDane: \n`));
|
|
58
|
-
for await (const chunk of res.textStream) {
|
|
59
|
-
process.stdout.write(chalk.green(chunk));
|
|
60
|
-
}
|
|
61
|
-
console.log(chalk.green(`\n`));
|
|
62
|
-
return { message: 'success' };
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
catch (e) {
|
|
66
|
-
console.log(chalk.red(`\n`));
|
|
67
|
-
console.log(chalk.red(`\n`));
|
|
68
|
-
console.log(chalk.red(`Error streaming results. Let's try again.`));
|
|
69
|
-
if (e instanceof Error) {
|
|
70
|
-
console.log(chalk.red(e.message));
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const res = await dane.generate(message, {
|
|
74
|
-
maxSteps: 5,
|
|
75
|
-
threadId,
|
|
76
|
-
resourceid,
|
|
77
|
-
});
|
|
78
|
-
console.log(chalk.green(res?.text));
|
|
79
|
-
return { message: res?.text };
|
|
80
|
-
},
|
|
81
|
-
});
|
|
82
|
-
messageWorkflow
|
|
83
|
-
.step(messageStep)
|
|
84
|
-
.after(messageStep)
|
|
85
|
-
.step(messageOutputStep)
|
|
86
|
-
.after(messageOutputStep)
|
|
87
|
-
.step(messageStep)
|
|
88
|
-
.commit();
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Workflow } from '@mastra/core';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare const commitMessageGenerator: Workflow<any, z.ZodObject<{
|
|
4
|
-
repoPath: z.ZodString;
|
|
5
|
-
}, "strip", z.ZodTypeAny, {
|
|
6
|
-
repoPath: string;
|
|
7
|
-
}, {
|
|
8
|
-
repoPath: string;
|
|
9
|
-
}>>;
|
|
10
|
-
//# sourceMappingURL=commit-message.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commit-message.d.ts","sourceRoot":"","sources":["../../../src/mastra/workflows/commit-message.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,sBAAsB;;;;;;GAKjC,CAAC"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { confirm } from '@inquirer/prompts';
|
|
2
|
-
import { Step, Workflow } from '@mastra/core';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
|
-
import { execSync } from 'child_process';
|
|
5
|
-
import { z } from 'zod';
|
|
6
|
-
import { fsTool } from '../tools/fs.js';
|
|
7
|
-
export const commitMessageGenerator = new Workflow({
|
|
8
|
-
name: 'commit-message',
|
|
9
|
-
triggerSchema: z.object({
|
|
10
|
-
repoPath: z.string(),
|
|
11
|
-
}),
|
|
12
|
-
});
|
|
13
|
-
const getDiff = new Step({
|
|
14
|
-
id: 'getDiff',
|
|
15
|
-
outputSchema: z.object({
|
|
16
|
-
diff: z.string(),
|
|
17
|
-
}),
|
|
18
|
-
execute: async ({ context }) => {
|
|
19
|
-
const repoPath = context?.machineContext?.getStepPayload('trigger')?.repoPath;
|
|
20
|
-
// Get the git diff of staged changes
|
|
21
|
-
const diff = execSync('git diff --staged', {
|
|
22
|
-
cwd: repoPath,
|
|
23
|
-
encoding: 'utf-8',
|
|
24
|
-
});
|
|
25
|
-
return { diff };
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
const readConventionalCommitSpec = new Step({
|
|
29
|
-
id: 'readConventionalCommitSpec',
|
|
30
|
-
outputSchema: z.object({
|
|
31
|
-
fileData: z.any(),
|
|
32
|
-
}),
|
|
33
|
-
execute: async ({ suspend }) => {
|
|
34
|
-
const fileData = await fsTool.execute({
|
|
35
|
-
context: { action: 'read', file: 'data/crawl/conventional-commit.json', data: '' },
|
|
36
|
-
suspend,
|
|
37
|
-
});
|
|
38
|
-
return { fileData };
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
const generateMessage = new Step({
|
|
42
|
-
id: 'generateMessage',
|
|
43
|
-
outputSchema: z.object({
|
|
44
|
-
commitMessage: z.string(),
|
|
45
|
-
generated: z.boolean(),
|
|
46
|
-
guidelines: z.array(z.string()),
|
|
47
|
-
}),
|
|
48
|
-
execute: async ({ context, mastra }) => {
|
|
49
|
-
const diffData = context?.machineContext?.getStepPayload('getDiff');
|
|
50
|
-
const fileData = context?.machineContext?.getStepPayload('readConventionalCommitSpec');
|
|
51
|
-
if (!diffData) {
|
|
52
|
-
return { commitMessage: '', generated: false, guidelines: [] };
|
|
53
|
-
}
|
|
54
|
-
const daneCommitGenerator = mastra?.agents?.daneCommitMessage;
|
|
55
|
-
const res = await daneCommitGenerator?.generate(`
|
|
56
|
-
Given this git diff:
|
|
57
|
-
${diffData.diff}
|
|
58
|
-
|
|
59
|
-
IF THE DIFF IS EMPTY, RETURN "No staged changes found", AND SET GENERATED TO FALSE,
|
|
60
|
-
OTHERWISE, SET GENERATED TO TRUE
|
|
61
|
-
|
|
62
|
-
${fileData && fileData.fileData?.message
|
|
63
|
-
? `USE THE FOLLOWING GUIDELINES: ${fileData.fileData?.message}`
|
|
64
|
-
: `USE THE FOLLOWING GUIDELINES:
|
|
65
|
-
- Start with a verb in the present tense
|
|
66
|
-
- Be specific but concise
|
|
67
|
-
- Focus on the "what" and "why" of the changes
|
|
68
|
-
IF THERE ARE MULTIPLE LOGICAL CHANGES, USE THE DESCRIPTION TO EXPLAIN THE CHANGES IN BULLET POINTS.
|
|
69
|
-
|
|
70
|
-
- Keep the first line under 50 characters
|
|
71
|
-
- If needed, add more detailed description after a blank line`}
|
|
72
|
-
|
|
73
|
-
RETURN THE GUIDELINES YOU ARE USING AS AN ARRAY OF STRINGS ON THE GUIDELINES KEY, AND THE COMMIT MESSAGE ON THE COMMIT MESSAGE KEY
|
|
74
|
-
`, {
|
|
75
|
-
output: z.object({
|
|
76
|
-
commitMessage: z.string(),
|
|
77
|
-
generated: z.boolean(),
|
|
78
|
-
guidelines: z.array(z.string()),
|
|
79
|
-
}),
|
|
80
|
-
});
|
|
81
|
-
if (!res?.object?.generated) {
|
|
82
|
-
throw new Error(res?.object?.commitMessage);
|
|
83
|
-
}
|
|
84
|
-
return {
|
|
85
|
-
commitMessage: res?.object?.commitMessage,
|
|
86
|
-
generated: res?.object?.generated,
|
|
87
|
-
guidelines: res?.object?.guidelines,
|
|
88
|
-
};
|
|
89
|
-
},
|
|
90
|
-
});
|
|
91
|
-
const confirmationStep = new Step({
|
|
92
|
-
id: 'confirmation',
|
|
93
|
-
outputSchema: z.object({
|
|
94
|
-
confirm: z.boolean(),
|
|
95
|
-
}),
|
|
96
|
-
execute: async ({ context }) => {
|
|
97
|
-
const parentStep = context?.machineContext?.stepResults?.generateMessage;
|
|
98
|
-
if (!parentStep || parentStep.status !== 'success') {
|
|
99
|
-
return { confirm: false };
|
|
100
|
-
}
|
|
101
|
-
if (!parentStep.payload.generated) {
|
|
102
|
-
return { confirm: false };
|
|
103
|
-
}
|
|
104
|
-
const commitMessage = parentStep.payload.commitMessage;
|
|
105
|
-
const confirmationMessage = await confirm({
|
|
106
|
-
message: `\n Would you like to use this commit message? \n\n ${chalk.yellow(commitMessage)}\n\n`,
|
|
107
|
-
});
|
|
108
|
-
return { confirm: confirmationMessage };
|
|
109
|
-
},
|
|
110
|
-
});
|
|
111
|
-
const commitStep = new Step({
|
|
112
|
-
id: 'commit',
|
|
113
|
-
outputSchema: z.object({
|
|
114
|
-
commit: z.boolean(),
|
|
115
|
-
}),
|
|
116
|
-
execute: async ({ context }) => {
|
|
117
|
-
const parentStep = context?.machineContext?.stepResults?.confirmation;
|
|
118
|
-
if (!parentStep || parentStep.status !== 'success' || !parentStep.payload.confirm) {
|
|
119
|
-
throw new Error('Commit message generation cancelled');
|
|
120
|
-
}
|
|
121
|
-
if (context?.machineContext?.stepResults?.generateMessage?.status !== 'success') {
|
|
122
|
-
throw new Error('Failed to generate commit message');
|
|
123
|
-
}
|
|
124
|
-
const commitMessage = context?.machineContext?.stepResults?.generateMessage?.payload?.commitMessage;
|
|
125
|
-
execSync(`git commit -m "${commitMessage}"`, {
|
|
126
|
-
cwd: context?.machineContext?.triggerData?.repoPath,
|
|
127
|
-
encoding: 'utf-8',
|
|
128
|
-
});
|
|
129
|
-
return { commit: true };
|
|
130
|
-
},
|
|
131
|
-
});
|
|
132
|
-
commitMessageGenerator
|
|
133
|
-
.step(getDiff)
|
|
134
|
-
.then(readConventionalCommitSpec)
|
|
135
|
-
.then(generateMessage)
|
|
136
|
-
.then(confirmationStep)
|
|
137
|
-
.then(commitStep)
|
|
138
|
-
.commit();
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Workflow } from '@mastra/core';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
export declare const githubFirstContributorMessage: Workflow<any, z.ZodObject<{
|
|
4
|
-
repo: z.ZodString;
|
|
5
|
-
owner: z.ZodString;
|
|
6
|
-
pr_number: z.ZodNumber;
|
|
7
|
-
}, "strip", z.ZodTypeAny, {
|
|
8
|
-
repo: string;
|
|
9
|
-
owner: string;
|
|
10
|
-
pr_number: number;
|
|
11
|
-
}, {
|
|
12
|
-
repo: string;
|
|
13
|
-
owner: string;
|
|
14
|
-
pr_number: number;
|
|
15
|
-
}>>;
|
|
16
|
-
//# sourceMappingURL=first-contributor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"first-contributor.d.ts","sourceRoot":"","sources":["../../../src/mastra/workflows/first-contributor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,6BAA6B;;;;;;;;;;;;GAOxC,CAAC"}
|