You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This follows the same pattern as **pyenv** (install tool + manage Python versions) and **NVM** (install tool + manage versions as stateful parameter).
38
-
39
-
---
40
-
41
-
### Key Design Decisions
42
-
43
-
1. **Homebrew dependency on macOS** — Declared via \`dependencies: ['homebrew']\` mirroring the \`asdf\` resource pattern.
44
-
2. **Two stateful parameters** — \`pythonVersions\` (parsed from \`uv python list --only-installed\`) and \`tools\` (parsed from \`uv tool list\`).
45
-
3. **Version prefix matching** — Desired \`"3.12"\` matches installed \`"3.12.3"\` using \`startsWith\` in \`isElementEqual\`.
46
-
4. **No sub-resources** — Unlike asdf (which has \`asdf-plugin\` and \`asdf-install\` sub-resources), uv's tool and Python management is simple enough to handle as stateful parameters on the main resource.
47
-
`
48
-
];
49
-
50
-
// for await (const message of query({
51
-
// prompt:
52
-
// `Research and design a Codify resource for ${toolName} (the homepage is: ${toolHomepage})
53
-
//
54
-
// The research should include:
55
-
// ** The installation method **
56
-
// - The installation method for the tool of application (in the case ${toolName})
57
-
// - The installation method should be the most standard installation method.
58
-
// - Find the installation instructions for both macOS and Linux.
59
-
//
60
-
// ** Dependencies **
61
-
// - Any dependencies or prerequisites for installation
62
-
//
63
-
// ** Configuration **
64
-
// - Any configuration options or settings for the tool
65
-
// - Any settings that we want the user to manage (which will later be exposed as parameters in the Codify resource)
66
-
// - The default values for these settings
67
-
//
68
-
// ** Usages **
69
-
// - Examples of how the tool can be used
70
-
// - Any common use cases or scenarios
71
-
// - Any use case we want to manage via the Codify resource or sub-resources or stateful parameters
72
-
// - For example:
73
-
// - The homebrew resource installs homebrew but it also has the formulae and casks stateful parameters that manage installed packages.
74
-
// - The asdf resource installs asdf, a tool version manager, but it also has the plugins stateful parameter that manages installed plugins.
75
-
// - The asdf resource has sub resources for installing tool plugins and versions.
76
-
//
77
-
// The purpose of this research is to be used later by Claude to create the resources needed in code. Format the answer so that
78
-
// it can be easily understood by Claude.
79
-
// `,
80
-
// options: {
81
-
// settingSources: ['project'],
82
-
// allowedTools: ["WebSearch", "WebFetch"],
83
-
// mcpServers: {},
84
-
// permissionMode: 'plan',
85
-
// cwd: '../'
86
-
// }
87
-
// })) {
88
-
// // Print human-readable output
89
-
// if (message.type === "assistant" && message.message?.content) {
90
-
// for (const block of message.message.content) {
91
-
// if ("text" in block) {
92
-
// console.log(block.text); // Claude's reasoning
93
-
// researchResults.push(block.text);
94
-
// } else if ("name" in block) {
95
-
// console.log(`Tool: ${block.name}`); // Tool being called
96
-
// }
97
-
// }
98
-
// } else if (message.type === "result") {
99
-
// console.log(`Done: ${message.subtype}`); // Final result
100
-
// }
101
-
// }
8
+
forawait(constmessageofquery({
9
+
prompt:
10
+
`Research and design a Codify resource for ${toolName} (the homepage is: ${toolHomepage})
11
+
12
+
The research should include:
13
+
** The installation method **
14
+
- The installation method for the tool of application (in the case ${toolName})
15
+
- The installation method should be the most standard installation method.
16
+
- Find the installation instructions for both macOS and Linux.
17
+
18
+
** Dependencies **
19
+
- Any dependencies or prerequisites for installation
20
+
21
+
** Configuration **
22
+
- Any configuration options or settings for the tool
23
+
- Any settings that we want the user to manage (which will later be exposed as parameters in the Codify resource)
24
+
- The default values for these settings
25
+
26
+
** Usages **
27
+
- Examples of how the tool can be used
28
+
- Any common use cases or scenarios
29
+
- Any use case we want to manage via the Codify resource or sub-resources or stateful parameters
30
+
- For example:
31
+
- The homebrew resource installs homebrew but it also has the formulae and casks stateful parameters that manage installed packages.
32
+
- The asdf resource installs asdf, a tool version manager, but it also has the plugins stateful parameter that manages installed plugins.
33
+
- The asdf resource has sub resources for installing tool plugins and versions.
34
+
35
+
The purpose of this research is to be used later by Claude to create the resources needed in code. Format the answer so that
console.log(`Tool: ${block.name}`);// Tool being called
54
+
}
55
+
}
56
+
}elseif(message.type==="result"){
57
+
console.log(`Done: ${message.subtype}`);// Final result
58
+
}
59
+
}
102
60
103
61
// Checkout a new git branch
104
62
// Launch a new docker container
@@ -119,8 +77,8 @@ Steps:
119
77
- Add the resource to @src/index.ts so that it is visible
120
78
- Write tests for the code to test ${toolName}
121
79
- Ensure typescript is correct using tsx
122
-
- Run the test using 'npm run test:integration:dev -- $PathToTheTestFile'
123
-
- Do not try to test the code in any other ways. It may brick the current computer if you do.
80
+
// - Run the test using 'npm run test:integration:dev -- $PathToTheTestFile'. Make sure the $PathToTheTestFile is replaced with the relative path to the test file.
81
+
// - Do not try to test the code in any other ways. It may brick the current computer if you do.
0 commit comments