@iinm/plain-agent 1.10.17 → 1.10.19
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/config/prompts.predefined/shortcuts/commit.md +1 -1
- package/package.json +1 -1
- package/src/main.mjs +22 -22
- package/src/prompt.mjs +7 -10
|
@@ -7,4 +7,4 @@ Create a commit.
|
|
|
7
7
|
- Check the commit message format: git ["log", "--no-merges", "--oneline", "-n", "10"]
|
|
8
8
|
- Create a concise and descriptive commit message that follows the project's commit convention.
|
|
9
9
|
- Create a commit:
|
|
10
|
-
exec_command: git ["commit", "-m", "<commit message>", "-m", "", "-m", "Co-authored-by:
|
|
10
|
+
exec_command: git ["commit", "-m", "<commit message>", "-m", "", "-m", "Co-authored-by: <model-name> <<model-name>@localhost>"]
|
package/package.json
CHANGED
package/src/main.mjs
CHANGED
|
@@ -261,6 +261,27 @@ export async function main(argv = process.argv) {
|
|
|
261
261
|
modelNameWithVariant = resumedState.modelName;
|
|
262
262
|
}
|
|
263
263
|
|
|
264
|
+
const [modelName, modelVariant] = modelNameWithVariant.split("+");
|
|
265
|
+
const modelDef = (appConfig.models ?? []).find(
|
|
266
|
+
(entry) => entry.name === modelName && entry.variant === modelVariant,
|
|
267
|
+
);
|
|
268
|
+
if (!modelDef) {
|
|
269
|
+
throw new Error(
|
|
270
|
+
`Model "${modelNameWithVariant}" not found in configuration.`,
|
|
271
|
+
);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const platform = (appConfig.platforms ?? []).find(
|
|
275
|
+
(entry) =>
|
|
276
|
+
entry.name === modelDef.platform.name &&
|
|
277
|
+
entry.variant === modelDef.platform.variant,
|
|
278
|
+
);
|
|
279
|
+
if (!platform) {
|
|
280
|
+
throw new Error(
|
|
281
|
+
`Platform ${modelDef.platform.name} variant=${modelDef.platform.variant} not found in configuration.`,
|
|
282
|
+
);
|
|
283
|
+
}
|
|
284
|
+
|
|
264
285
|
const pluginPaths = resolvePluginPaths(appConfig.claudeCodePlugins ?? []);
|
|
265
286
|
const [prompts, agentRoles] = await Promise.all([
|
|
266
287
|
loadPrompts(pluginPaths),
|
|
@@ -269,7 +290,7 @@ export async function main(argv = process.argv) {
|
|
|
269
290
|
|
|
270
291
|
const prompt = createPrompt({
|
|
271
292
|
username: USER_NAME,
|
|
272
|
-
modelName
|
|
293
|
+
modelName,
|
|
273
294
|
workingDir: process.cwd(),
|
|
274
295
|
today: new Date().toISOString().split("T")[0],
|
|
275
296
|
sessionId,
|
|
@@ -290,27 +311,6 @@ export async function main(argv = process.argv) {
|
|
|
290
311
|
createSwitchToMainAgentTool(),
|
|
291
312
|
];
|
|
292
313
|
|
|
293
|
-
const [modelName, modelVariant] = modelNameWithVariant.split("+");
|
|
294
|
-
const modelDef = (appConfig.models ?? []).find(
|
|
295
|
-
(entry) => entry.name === modelName && entry.variant === modelVariant,
|
|
296
|
-
);
|
|
297
|
-
if (!modelDef) {
|
|
298
|
-
throw new Error(
|
|
299
|
-
`Model "${modelNameWithVariant}" not found in configuration.`,
|
|
300
|
-
);
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
const platform = (appConfig.platforms ?? []).find(
|
|
304
|
-
(entry) =>
|
|
305
|
-
entry.name === modelDef.platform.name &&
|
|
306
|
-
entry.variant === modelDef.platform.variant,
|
|
307
|
-
);
|
|
308
|
-
if (!platform) {
|
|
309
|
-
throw new Error(
|
|
310
|
-
`Platform ${modelDef.platform.name} variant=${modelDef.platform.variant} not found in configuration.`,
|
|
311
|
-
);
|
|
312
|
-
}
|
|
313
|
-
|
|
314
314
|
if (appConfig.tools?.webSearch) {
|
|
315
315
|
const webSearchConfig = appConfig.tools.webSearch;
|
|
316
316
|
if (webSearchConfig.provider === "command") {
|
package/src/prompt.mjs
CHANGED
|
@@ -47,24 +47,21 @@ export function createPrompt({
|
|
|
47
47
|
return `
|
|
48
48
|
# Communication Style
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
- Call the user by name, not "user".
|
|
52
|
-
- Use emojis sparingly to highlight key points.
|
|
50
|
+
Respond in the user's language.
|
|
53
51
|
|
|
54
52
|
# Memory Files
|
|
55
53
|
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
Memory files preserve task state so work can be resumed after a context reset.
|
|
55
|
+
|
|
56
|
+
- Create/Update memory files when creating/updating a plan, completing milestones, encountering issues, or making decisions. Skip memory files for tasks that can be completed in a few steps.
|
|
57
|
+
- Ensure self-containment: Write as if the reader has no prior knowledge of the conversation.
|
|
58
58
|
- Write the memory content in the user's language.
|
|
59
59
|
|
|
60
60
|
Memory files should include:
|
|
61
|
-
- Project discovery status: Whether AGENTS.md has been checked
|
|
62
61
|
- Task overview: What the task is, why it's being done, requirements and constraints
|
|
63
|
-
-
|
|
62
|
+
- References: AGENTS.md, skills, relevant documentation, source files, and commands
|
|
64
63
|
- Progress tracking: Completed milestones with evidence, current status, and next steps
|
|
65
|
-
- Decision records:
|
|
66
|
-
- Findings and learnings: Key discoveries, challenges encountered, and solutions applied
|
|
67
|
-
- Future considerations: Known limitations, potential improvements, and follow-up items
|
|
64
|
+
- Decision records: Key decisions, alternatives considered, and rationale
|
|
68
65
|
|
|
69
66
|
# Tools
|
|
70
67
|
|