@autonav/core 1.5.0 → 1.6.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.
- package/dist/cli/autonav.d.ts +1 -0
- package/dist/cli/autonav.d.ts.map +1 -1
- package/dist/cli/autonav.js +7 -0
- package/dist/cli/autonav.js.map +1 -1
- package/dist/cli/nav-memento.d.ts +20 -0
- package/dist/cli/nav-memento.d.ts.map +1 -0
- package/dist/cli/nav-memento.js +179 -0
- package/dist/cli/nav-memento.js.map +1 -0
- package/dist/memento/git-operations.d.ts +95 -0
- package/dist/memento/git-operations.d.ts.map +1 -0
- package/dist/memento/git-operations.js +256 -0
- package/dist/memento/git-operations.js.map +1 -0
- package/dist/memento/index.d.ts +31 -0
- package/dist/memento/index.d.ts.map +1 -0
- package/dist/memento/index.js +38 -0
- package/dist/memento/index.js.map +1 -0
- package/dist/memento/loop.d.ts +33 -0
- package/dist/memento/loop.d.ts.map +1 -0
- package/dist/memento/loop.js +535 -0
- package/dist/memento/loop.js.map +1 -0
- package/dist/memento/matrix-animation.d.ts +77 -0
- package/dist/memento/matrix-animation.d.ts.map +1 -0
- package/dist/memento/matrix-animation.js +228 -0
- package/dist/memento/matrix-animation.js.map +1 -0
- package/dist/memento/nav-protocol.d.ts +30 -0
- package/dist/memento/nav-protocol.d.ts.map +1 -0
- package/dist/memento/nav-protocol.js +79 -0
- package/dist/memento/nav-protocol.js.map +1 -0
- package/dist/memento/prompts.d.ts +44 -0
- package/dist/memento/prompts.d.ts.map +1 -0
- package/dist/memento/prompts.js +168 -0
- package/dist/memento/prompts.js.map +1 -0
- package/dist/memento/state.d.ts +56 -0
- package/dist/memento/state.d.ts.map +1 -0
- package/dist/memento/state.js +156 -0
- package/dist/memento/state.js.map +1 -0
- package/dist/memento/types.d.ts +123 -0
- package/dist/memento/types.d.ts.map +1 -0
- package/dist/memento/types.js +30 -0
- package/dist/memento/types.js.map +1 -0
- package/dist/memento/worker-agent.d.ts +30 -0
- package/dist/memento/worker-agent.d.ts.map +1 -0
- package/dist/memento/worker-agent.js +109 -0
- package/dist/memento/worker-agent.js.map +1 -0
- package/dist/migrations/versions/v1.4.0-rfc2119-skills.d.ts +18 -0
- package/dist/migrations/versions/v1.4.0-rfc2119-skills.d.ts.map +1 -0
- package/dist/migrations/versions/v1.4.0-rfc2119-skills.js +207 -0
- package/dist/migrations/versions/v1.4.0-rfc2119-skills.js.map +1 -0
- package/package.json +1 -1
- package/dist/skill-generator/index.d.ts +0 -142
- package/dist/skill-generator/index.d.ts.map +0 -1
- package/dist/skill-generator/index.js +0 -510
- package/dist/skill-generator/index.js.map +0 -1
- package/dist/templates/.gitignore.template +0 -26
- package/dist/templates/CLAUDE-pack.md.template +0 -114
- package/dist/templates/CLAUDE.md.template +0 -153
- package/dist/templates/README.md.template +0 -174
- package/dist/templates/config-pack.json.template +0 -16
- package/dist/templates/config.json.template +0 -11
- package/dist/templates/index.d.ts +0 -22
- package/dist/templates/index.d.ts.map +0 -1
- package/dist/templates/index.js +0 -32
- package/dist/templates/index.js.map +0 -1
- package/dist/templates/plugins.json.template +0 -33
- package/dist/templates/system-configuration.md.template +0 -70
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Worker Agent for Memento Loop
|
|
3
|
+
*
|
|
4
|
+
* Executes implementation plans using the Claude Agent SDK.
|
|
5
|
+
*/
|
|
6
|
+
import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
7
|
+
import { buildWorkerPrompt, buildWorkerSystemPrompt } from "./prompts.js";
|
|
8
|
+
/**
|
|
9
|
+
* Run the worker agent to implement a plan
|
|
10
|
+
*/
|
|
11
|
+
export async function runWorkerAgent(context, plan, options = {}) {
|
|
12
|
+
const startTime = Date.now();
|
|
13
|
+
const { verbose = false, model = "claude-sonnet-4-5", maxTurns = 50, } = options;
|
|
14
|
+
const prompt = buildWorkerPrompt(context.codeDirectory, plan);
|
|
15
|
+
const systemPrompt = buildWorkerSystemPrompt(context.codeDirectory);
|
|
16
|
+
if (verbose) {
|
|
17
|
+
console.log("\n[Worker] Starting implementation...");
|
|
18
|
+
console.log(`[Worker] Plan: ${plan.summary}`);
|
|
19
|
+
console.log(`[Worker] Steps: ${plan.steps.length}`);
|
|
20
|
+
}
|
|
21
|
+
const filesModified = [];
|
|
22
|
+
let lastAssistantText = "";
|
|
23
|
+
let resultMessage;
|
|
24
|
+
try {
|
|
25
|
+
const queryIterator = query({
|
|
26
|
+
prompt,
|
|
27
|
+
options: {
|
|
28
|
+
model,
|
|
29
|
+
maxTurns,
|
|
30
|
+
systemPrompt,
|
|
31
|
+
cwd: context.codeDirectory,
|
|
32
|
+
permissionMode: "bypassPermissions",
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
for await (const message of queryIterator) {
|
|
36
|
+
if (message.type === "assistant") {
|
|
37
|
+
const content = message.message.content;
|
|
38
|
+
for (const block of content) {
|
|
39
|
+
if (block.type === "tool_use") {
|
|
40
|
+
// Track file operations
|
|
41
|
+
if (verbose) {
|
|
42
|
+
console.log(`[Worker] Tool: ${block.name}`);
|
|
43
|
+
}
|
|
44
|
+
// Extract file paths from common tools
|
|
45
|
+
if (block.name === "Write" ||
|
|
46
|
+
block.name === "Edit" ||
|
|
47
|
+
block.name === "str_replace_based_edit_tool") {
|
|
48
|
+
const input = block.input;
|
|
49
|
+
const filePath = input.file_path || input.path;
|
|
50
|
+
if (typeof filePath === "string" && !filesModified.includes(filePath)) {
|
|
51
|
+
filesModified.push(filePath);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else if (block.type === "text") {
|
|
56
|
+
lastAssistantText = block.text;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (message.type === "result") {
|
|
61
|
+
resultMessage = message;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const durationMs = Date.now() - startTime;
|
|
65
|
+
if (!resultMessage) {
|
|
66
|
+
return {
|
|
67
|
+
success: false,
|
|
68
|
+
summary: "No result message received from worker agent",
|
|
69
|
+
filesModified,
|
|
70
|
+
errors: ["No result message received"],
|
|
71
|
+
durationMs,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
if (resultMessage.subtype !== "success") {
|
|
75
|
+
const errorDetails = "errors" in resultMessage
|
|
76
|
+
? resultMessage.errors.join(", ")
|
|
77
|
+
: "Unknown error";
|
|
78
|
+
return {
|
|
79
|
+
success: false,
|
|
80
|
+
summary: `Worker failed: ${resultMessage.subtype}`,
|
|
81
|
+
filesModified,
|
|
82
|
+
errors: [errorDetails],
|
|
83
|
+
durationMs,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
if (verbose) {
|
|
87
|
+
console.log(`[Worker] Completed in ${durationMs}ms`);
|
|
88
|
+
console.log(`[Worker] Files modified: ${filesModified.length}`);
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
success: true,
|
|
92
|
+
summary: resultMessage.result || lastAssistantText || "Implementation completed",
|
|
93
|
+
filesModified,
|
|
94
|
+
durationMs,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
const durationMs = Date.now() - startTime;
|
|
99
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
100
|
+
return {
|
|
101
|
+
success: false,
|
|
102
|
+
summary: `Worker error: ${errorMessage}`,
|
|
103
|
+
filesModified,
|
|
104
|
+
errors: [errorMessage],
|
|
105
|
+
durationMs,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=worker-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker-agent.js","sourceRoot":"","sources":["../../src/memento/worker-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration v1.4.0: RFC-2119 Skills and Schema Alignment
|
|
3
|
+
*
|
|
4
|
+
* This migration updates navigators to use the refactored template system with:
|
|
5
|
+
* - RFC-2119 requirements in skills (MUST/MUST NOT/MAY) to prevent directory changes
|
|
6
|
+
* - New config.json schema (createdAt vs created, knowledgeBasePath vs knowledgeBase)
|
|
7
|
+
* - Updated CLAUDE.md sections (GROUNDING_RULES, RESPONSE_FORMAT, etc.)
|
|
8
|
+
*
|
|
9
|
+
* Changes:
|
|
10
|
+
* - Regenerates ask-<nav> skill with RFC-2119 requirements
|
|
11
|
+
* - Regenerates update-<nav> skill with RFC-2119 requirements
|
|
12
|
+
* - Migrates config.json to new schema format
|
|
13
|
+
* - Updates CLAUDE.md with new template sections (if missing)
|
|
14
|
+
* - Bumps version to 1.4.0
|
|
15
|
+
*/
|
|
16
|
+
import type { Migration } from "../types.js";
|
|
17
|
+
export declare const migration: Migration;
|
|
18
|
+
//# sourceMappingURL=v1.4.0-rfc2119-skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.4.0-rfc2119-skills.d.ts","sourceRoot":"","sources":["../../../src/migrations/versions/v1.4.0-rfc2119-skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,OAAO,KAAK,EAAE,SAAS,EAA8C,MAAM,aAAa,CAAC;AAmNzF,eAAO,MAAM,SAAS,EAAE,SAKvB,CAAC"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Migration v1.4.0: RFC-2119 Skills and Schema Alignment
|
|
3
|
+
*
|
|
4
|
+
* This migration updates navigators to use the refactored template system with:
|
|
5
|
+
* - RFC-2119 requirements in skills (MUST/MUST NOT/MAY) to prevent directory changes
|
|
6
|
+
* - New config.json schema (createdAt vs created, knowledgeBasePath vs knowledgeBase)
|
|
7
|
+
* - Updated CLAUDE.md sections (GROUNDING_RULES, RESPONSE_FORMAT, etc.)
|
|
8
|
+
*
|
|
9
|
+
* Changes:
|
|
10
|
+
* - Regenerates ask-<nav> skill with RFC-2119 requirements
|
|
11
|
+
* - Regenerates update-<nav> skill with RFC-2119 requirements
|
|
12
|
+
* - Migrates config.json to new schema format
|
|
13
|
+
* - Updates CLAUDE.md with new template sections (if missing)
|
|
14
|
+
* - Bumps version to 1.4.0
|
|
15
|
+
*/
|
|
16
|
+
import * as fs from "node:fs";
|
|
17
|
+
import * as path from "node:path";
|
|
18
|
+
import { generateSkillContent, generateUpdateSkillContent, getSkillName, getUpdateSkillName, } from "@autonav/communication-layer";
|
|
19
|
+
const MIGRATION_VERSION = "1.4.0";
|
|
20
|
+
/**
|
|
21
|
+
* Check if skills have RFC-2119 requirements
|
|
22
|
+
*/
|
|
23
|
+
function hasRFC2119Requirements(skillContent) {
|
|
24
|
+
return (skillContent.includes("You MUST run") &&
|
|
25
|
+
skillContent.includes("You MUST NOT change directory") &&
|
|
26
|
+
skillContent.includes("RFC-2119 Requirements"));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Check if config uses new schema
|
|
30
|
+
*/
|
|
31
|
+
function usesNewSchema(config) {
|
|
32
|
+
// New schema uses createdAt/updatedAt instead of created
|
|
33
|
+
// and knowledgeBasePath instead of knowledgeBase
|
|
34
|
+
return (config.createdAt !== undefined &&
|
|
35
|
+
config.knowledgeBasePath !== undefined);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if this migration is needed
|
|
39
|
+
*/
|
|
40
|
+
async function check(navPath) {
|
|
41
|
+
const configPath = path.join(navPath, "config.json");
|
|
42
|
+
if (!fs.existsSync(configPath)) {
|
|
43
|
+
return {
|
|
44
|
+
needed: false,
|
|
45
|
+
reason: "No config.json found",
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// Parse config
|
|
49
|
+
let config;
|
|
50
|
+
try {
|
|
51
|
+
const configContent = fs.readFileSync(configPath, "utf-8");
|
|
52
|
+
config = JSON.parse(configContent);
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
return {
|
|
56
|
+
needed: false,
|
|
57
|
+
reason: "Could not parse config.json",
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
// Check if already migrated
|
|
61
|
+
if (config.version === "1.4.0" || (config.version && config.version > "1.4.0")) {
|
|
62
|
+
return {
|
|
63
|
+
needed: false,
|
|
64
|
+
reason: `Navigator already at version ${config.version}`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// Check if skills need updating
|
|
68
|
+
const askSkillName = getSkillName(config.name);
|
|
69
|
+
const updateSkillName = getUpdateSkillName(config.name);
|
|
70
|
+
const askSkillPath = path.join(navPath, ".autonav", "skills", askSkillName, "SKILL.md");
|
|
71
|
+
const updateSkillPath = path.join(navPath, ".autonav", "skills", updateSkillName, "SKILL.md");
|
|
72
|
+
let needsSkillUpdate = false;
|
|
73
|
+
let needsSchemaUpdate = false;
|
|
74
|
+
// Check ask skill
|
|
75
|
+
if (fs.existsSync(askSkillPath)) {
|
|
76
|
+
const askSkillContent = fs.readFileSync(askSkillPath, "utf-8");
|
|
77
|
+
if (!hasRFC2119Requirements(askSkillContent)) {
|
|
78
|
+
needsSkillUpdate = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
// Check update skill
|
|
82
|
+
if (fs.existsSync(updateSkillPath)) {
|
|
83
|
+
const updateSkillContent = fs.readFileSync(updateSkillPath, "utf-8");
|
|
84
|
+
if (!hasRFC2119Requirements(updateSkillContent)) {
|
|
85
|
+
needsSkillUpdate = true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// Check schema
|
|
89
|
+
if (!usesNewSchema(config)) {
|
|
90
|
+
needsSchemaUpdate = true;
|
|
91
|
+
}
|
|
92
|
+
if (!needsSkillUpdate && !needsSchemaUpdate) {
|
|
93
|
+
return {
|
|
94
|
+
needed: false,
|
|
95
|
+
reason: "Skills already have RFC-2119 requirements and config uses new schema",
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const reasons = [];
|
|
99
|
+
if (needsSkillUpdate) {
|
|
100
|
+
reasons.push("Skills need RFC-2119 requirements");
|
|
101
|
+
}
|
|
102
|
+
if (needsSchemaUpdate) {
|
|
103
|
+
reasons.push("Config needs schema migration");
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
needed: true,
|
|
107
|
+
reason: reasons.join(", "),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Apply the migration
|
|
112
|
+
*/
|
|
113
|
+
async function apply(navPath, _confirm) {
|
|
114
|
+
const configPath = path.join(navPath, "config.json");
|
|
115
|
+
const filesModified = [];
|
|
116
|
+
const changes = [];
|
|
117
|
+
// Load config
|
|
118
|
+
const configContent = fs.readFileSync(configPath, "utf-8");
|
|
119
|
+
const config = JSON.parse(configContent);
|
|
120
|
+
// Build skill config from navigator config
|
|
121
|
+
const skillConfig = {
|
|
122
|
+
navigatorName: config.name,
|
|
123
|
+
navigatorPath: navPath,
|
|
124
|
+
description: config.description || "Knowledge navigator",
|
|
125
|
+
scope: config.scope,
|
|
126
|
+
audience: config.audience,
|
|
127
|
+
};
|
|
128
|
+
// Regenerate ask skill with RFC-2119
|
|
129
|
+
const askSkillName = getSkillName(config.name);
|
|
130
|
+
const askSkillPath = path.join(navPath, ".autonav", "skills", askSkillName, "SKILL.md");
|
|
131
|
+
if (fs.existsSync(askSkillPath)) {
|
|
132
|
+
const oldContent = fs.readFileSync(askSkillPath, "utf-8");
|
|
133
|
+
if (!hasRFC2119Requirements(oldContent)) {
|
|
134
|
+
const newContent = generateSkillContent(skillConfig);
|
|
135
|
+
fs.writeFileSync(askSkillPath, newContent);
|
|
136
|
+
filesModified.push(askSkillPath);
|
|
137
|
+
changes.push(`Regenerated ${askSkillName} skill with RFC-2119 requirements`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Regenerate update skill with RFC-2119
|
|
141
|
+
const updateSkillName = getUpdateSkillName(config.name);
|
|
142
|
+
const updateSkillPath = path.join(navPath, ".autonav", "skills", updateSkillName, "SKILL.md");
|
|
143
|
+
if (fs.existsSync(updateSkillPath)) {
|
|
144
|
+
const oldContent = fs.readFileSync(updateSkillPath, "utf-8");
|
|
145
|
+
if (!hasRFC2119Requirements(oldContent)) {
|
|
146
|
+
const newContent = generateUpdateSkillContent(skillConfig);
|
|
147
|
+
fs.writeFileSync(updateSkillPath, newContent);
|
|
148
|
+
filesModified.push(updateSkillPath);
|
|
149
|
+
changes.push(`Regenerated ${updateSkillName} skill with RFC-2119 requirements`);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Migrate config schema
|
|
153
|
+
if (!usesNewSchema(config)) {
|
|
154
|
+
const migratedConfig = {
|
|
155
|
+
version: "1.4.0",
|
|
156
|
+
name: config.name,
|
|
157
|
+
description: config.description,
|
|
158
|
+
createdAt: config.created || new Date().toISOString(),
|
|
159
|
+
updatedAt: new Date().toISOString(),
|
|
160
|
+
knowledgeBasePath: config.knowledgeBase || "./knowledge",
|
|
161
|
+
plugins: config.plugins || {
|
|
162
|
+
configFile: ".claude/plugins.json",
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
// Preserve optional fields
|
|
166
|
+
if (config.scope)
|
|
167
|
+
migratedConfig.scope = config.scope;
|
|
168
|
+
if (config.audience)
|
|
169
|
+
migratedConfig.audience = config.audience;
|
|
170
|
+
if (config.systemConfiguration)
|
|
171
|
+
migratedConfig.systemConfiguration = config.systemConfiguration;
|
|
172
|
+
if (config.knowledgePack) {
|
|
173
|
+
migratedConfig.knowledgePack = {
|
|
174
|
+
name: config.knowledgePack.name || config.knowledgePack,
|
|
175
|
+
version: config.knowledgePack.version || "unknown",
|
|
176
|
+
installedAt: config.knowledgePack.installedAt || config.created || new Date().toISOString(),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
migratedConfig.knowledgePack = null;
|
|
181
|
+
}
|
|
182
|
+
fs.writeFileSync(configPath, JSON.stringify(migratedConfig, null, 2));
|
|
183
|
+
filesModified.push(configPath);
|
|
184
|
+
changes.push("Migrated config.json to new schema (createdAt, knowledgeBasePath)");
|
|
185
|
+
changes.push("Bumped version to 1.4.0");
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
// Just bump version
|
|
189
|
+
config.version = "1.4.0";
|
|
190
|
+
config.updatedAt = new Date().toISOString();
|
|
191
|
+
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
192
|
+
filesModified.push(configPath);
|
|
193
|
+
changes.push("Bumped version to 1.4.0");
|
|
194
|
+
}
|
|
195
|
+
return {
|
|
196
|
+
success: true,
|
|
197
|
+
message: changes.join("; "),
|
|
198
|
+
filesModified,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
export const migration = {
|
|
202
|
+
version: MIGRATION_VERSION,
|
|
203
|
+
description: "Add RFC-2119 requirements to skills and migrate config schema",
|
|
204
|
+
check,
|
|
205
|
+
apply,
|
|
206
|
+
};
|
|
207
|
+
//# sourceMappingURL=v1.4.0-rfc2119-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v1.4.0-rfc2119-skills.js","sourceRoot":"","sources":["../../../src/migrations/versions/v1.4.0-rfc2119-skills.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Skill Generator
|
|
3
|
-
*
|
|
4
|
-
* Generates Claude Code skills for navigators, enabling
|
|
5
|
-
* inter-navigator communication via the "ask <navname>" pattern.
|
|
6
|
-
*
|
|
7
|
-
* Skills are stored locally in the navigator directory (.autonav/skills/)
|
|
8
|
-
* and symlinked to the global skills directory (~/.claude/skills/) for
|
|
9
|
-
* discovery by Claude Code.
|
|
10
|
-
*/
|
|
11
|
-
export interface SkillConfig {
|
|
12
|
-
/** Navigator name (used for skill name: ask-<navname>) */
|
|
13
|
-
navigatorName: string;
|
|
14
|
-
/** Absolute path to the navigator directory */
|
|
15
|
-
navigatorPath: string;
|
|
16
|
-
/** Navigator description/purpose */
|
|
17
|
-
description: string;
|
|
18
|
-
/** Topics the navigator covers */
|
|
19
|
-
scope?: string;
|
|
20
|
-
/** Who uses this navigator */
|
|
21
|
-
audience?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get the global skills directory path (~/.claude/skills/)
|
|
25
|
-
*/
|
|
26
|
-
export declare function getGlobalSkillsDir(): string;
|
|
27
|
-
/**
|
|
28
|
-
* Get the local skills directory path for a navigator (.autonav/skills/)
|
|
29
|
-
*/
|
|
30
|
-
export declare function getLocalSkillsDir(navigatorPath: string): string;
|
|
31
|
-
/**
|
|
32
|
-
* Get the full path to a local skill directory
|
|
33
|
-
*/
|
|
34
|
-
export declare function getLocalSkillPath(navigatorPath: string, skillName: string): string;
|
|
35
|
-
/**
|
|
36
|
-
* Check if a skill already exists globally
|
|
37
|
-
*/
|
|
38
|
-
export declare function skillExists(skillName: string): boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Check if a skill exists locally in a navigator
|
|
41
|
-
*/
|
|
42
|
-
export declare function localSkillExists(navigatorPath: string, skillName: string): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Check if a global skill is a symlink
|
|
45
|
-
*/
|
|
46
|
-
export declare function isSkillSymlink(skillName: string): boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Get the target of a global skill symlink
|
|
49
|
-
*/
|
|
50
|
-
export declare function getSkillSymlinkTarget(skillName: string): string | null;
|
|
51
|
-
/**
|
|
52
|
-
* Generate the skill name from navigator name
|
|
53
|
-
*/
|
|
54
|
-
export declare function getSkillName(navigatorName: string): string;
|
|
55
|
-
/**
|
|
56
|
-
* Generate the update skill name from navigator name
|
|
57
|
-
*/
|
|
58
|
-
export declare function getUpdateSkillName(navigatorName: string): string;
|
|
59
|
-
/**
|
|
60
|
-
* Generate the SKILL.md content for a navigator
|
|
61
|
-
*/
|
|
62
|
-
export declare function generateSkillContent(config: SkillConfig): string;
|
|
63
|
-
/**
|
|
64
|
-
* Generate the update skill content for a navigator (with write permissions)
|
|
65
|
-
*/
|
|
66
|
-
export declare function generateUpdateSkillContent(config: SkillConfig): string;
|
|
67
|
-
/**
|
|
68
|
-
* Create a global skill for a navigator
|
|
69
|
-
*
|
|
70
|
-
* @param config - Skill configuration
|
|
71
|
-
* @param options - Options for skill creation
|
|
72
|
-
* @returns Path to the created skill directory, or null if skipped
|
|
73
|
-
*/
|
|
74
|
-
export declare function createNavigatorSkill(config: SkillConfig, options?: {
|
|
75
|
-
force?: boolean;
|
|
76
|
-
quiet?: boolean;
|
|
77
|
-
}): Promise<string | null>;
|
|
78
|
-
/**
|
|
79
|
-
* Remove a navigator skill (both ask and update skills, global only)
|
|
80
|
-
*/
|
|
81
|
-
export declare function removeNavigatorSkill(navigatorName: string, options?: {
|
|
82
|
-
quiet?: boolean;
|
|
83
|
-
}): boolean;
|
|
84
|
-
export interface SymlinkResult {
|
|
85
|
-
success: boolean;
|
|
86
|
-
action: "created" | "already_linked" | "conflict" | "error";
|
|
87
|
-
message: string;
|
|
88
|
-
skillName: string;
|
|
89
|
-
localPath?: string;
|
|
90
|
-
globalPath?: string;
|
|
91
|
-
conflictTarget?: string;
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Create both ask and update skills locally in the navigator's .autonav/skills/ directory
|
|
95
|
-
*/
|
|
96
|
-
export declare function createLocalSkill(navigatorPath: string, config: SkillConfig, options?: {
|
|
97
|
-
force?: boolean;
|
|
98
|
-
quiet?: boolean;
|
|
99
|
-
}): Promise<{
|
|
100
|
-
askSkillPath: string | null;
|
|
101
|
-
updateSkillPath: string | null;
|
|
102
|
-
}>;
|
|
103
|
-
/**
|
|
104
|
-
* Create a symlink from global skills directory to local skill
|
|
105
|
-
*
|
|
106
|
-
* @returns SymlinkResult with status and details
|
|
107
|
-
*/
|
|
108
|
-
export declare function symlinkSkillToGlobal(localSkillPath: string, skillName: string, options?: {
|
|
109
|
-
force?: boolean;
|
|
110
|
-
quiet?: boolean;
|
|
111
|
-
}): SymlinkResult;
|
|
112
|
-
/**
|
|
113
|
-
* Remove the global symlink for a skill (preserves local skill)
|
|
114
|
-
*/
|
|
115
|
-
export declare function removeSkillSymlink(skillName: string, options?: {
|
|
116
|
-
quiet?: boolean;
|
|
117
|
-
}): {
|
|
118
|
-
success: boolean;
|
|
119
|
-
wasSymlink: boolean;
|
|
120
|
-
message: string;
|
|
121
|
-
};
|
|
122
|
-
/**
|
|
123
|
-
* Create both skills locally AND symlink them globally (recommended for new navigators)
|
|
124
|
-
*
|
|
125
|
-
* This is the preferred method for creating skills as it:
|
|
126
|
-
* 1. Stores both ask and update skills in the navigator's .autonav/skills/ (version-controlled)
|
|
127
|
-
* 2. Symlinks both to ~/.claude/skills/ for global discovery
|
|
128
|
-
*/
|
|
129
|
-
export declare function createAndSymlinkSkill(navigatorPath: string, config: SkillConfig, options?: {
|
|
130
|
-
force?: boolean;
|
|
131
|
-
quiet?: boolean;
|
|
132
|
-
}): Promise<{
|
|
133
|
-
askSkillPath: string | null;
|
|
134
|
-
updateSkillPath: string | null;
|
|
135
|
-
askSymlinkResult: SymlinkResult | null;
|
|
136
|
-
updateSymlinkResult: SymlinkResult | null;
|
|
137
|
-
}>;
|
|
138
|
-
/**
|
|
139
|
-
* Discover all local skills in a navigator (both ask and update skills)
|
|
140
|
-
*/
|
|
141
|
-
export declare function discoverLocalSkills(navigatorPath: string): string[];
|
|
142
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill-generator/index.ts"],"names":[],"mappings":"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"}
|