climemo 0.1.0 → 0.2.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/commands/comments.d.ts +2 -0
- package/dist/commands/comments.js +104 -0
- package/dist/commands/comments.js.map +1 -0
- package/dist/commands/setup.d.ts +2 -0
- package/dist/commands/setup.js +116 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/sync.js +1 -0
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/versions.d.ts +2 -0
- package/dist/commands/versions.js +168 -0
- package/dist/commands/versions.js.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -4
- package/skills/climemo.md +36 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { apiRequest } from "../lib/api.js";
|
|
3
|
+
import { resolveProject } from "../lib/project.js";
|
|
4
|
+
export const commentsCommand = new Command("comments")
|
|
5
|
+
.description("Manage document comments");
|
|
6
|
+
commentsCommand
|
|
7
|
+
.command("list")
|
|
8
|
+
.description("List comments for a document")
|
|
9
|
+
.requiredOption("--document <documentId>", "Document ID")
|
|
10
|
+
.option("--unresolved", "Show only unresolved comments")
|
|
11
|
+
.option("--needs-action", "Show only comments that need action")
|
|
12
|
+
.option("--project <projectId>", "Project ID (auto-detected from git repo if omitted)")
|
|
13
|
+
.action(async (options, cmd) => {
|
|
14
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
15
|
+
try {
|
|
16
|
+
const projectId = options.project || await resolveProject(globalOpts.token);
|
|
17
|
+
const params = new URLSearchParams();
|
|
18
|
+
if (options.unresolved) {
|
|
19
|
+
params.set("resolved", "false");
|
|
20
|
+
}
|
|
21
|
+
if (options.needsAction) {
|
|
22
|
+
params.set("needs_action", "true");
|
|
23
|
+
}
|
|
24
|
+
const qs = params.toString() ? `?${params}` : "";
|
|
25
|
+
const { ok, data } = await apiRequest(`/api/projects/${projectId}/documents/${options.document}/comments${qs}`, { token: globalOpts.token });
|
|
26
|
+
if (!ok) {
|
|
27
|
+
console.error(JSON.stringify({ error: "Failed to list comments", details: data }));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
console.log(JSON.stringify(data, null, 2));
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
34
|
+
console.error(JSON.stringify({ error: message }));
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
commentsCommand
|
|
39
|
+
.command("add")
|
|
40
|
+
.description("Add a comment to a document")
|
|
41
|
+
.requiredOption("--document <documentId>", "Document ID")
|
|
42
|
+
.requiredOption("--content <text>", "Comment content")
|
|
43
|
+
.option("--line-start <n>", "Start line number", parseInt)
|
|
44
|
+
.option("--line-end <n>", "End line number", parseInt)
|
|
45
|
+
.option("--needs-action", "Mark comment as needing action")
|
|
46
|
+
.option("--project <projectId>", "Project ID (auto-detected from git repo if omitted)")
|
|
47
|
+
.action(async (options, cmd) => {
|
|
48
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
49
|
+
try {
|
|
50
|
+
const projectId = options.project || await resolveProject(globalOpts.token);
|
|
51
|
+
const body = {
|
|
52
|
+
content: options.content,
|
|
53
|
+
};
|
|
54
|
+
if (options.lineStart !== undefined)
|
|
55
|
+
body.line_start = options.lineStart;
|
|
56
|
+
if (options.lineEnd !== undefined)
|
|
57
|
+
body.line_end = options.lineEnd;
|
|
58
|
+
if (options.needsAction)
|
|
59
|
+
body.needs_action = true;
|
|
60
|
+
const { ok, data } = await apiRequest(`/api/projects/${projectId}/documents/${options.document}/comments`, {
|
|
61
|
+
method: "POST",
|
|
62
|
+
body,
|
|
63
|
+
token: globalOpts.token,
|
|
64
|
+
});
|
|
65
|
+
if (!ok) {
|
|
66
|
+
console.error(JSON.stringify({ error: "Failed to add comment", details: data }));
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
console.log(JSON.stringify(data, null, 2));
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
73
|
+
console.error(JSON.stringify({ error: message }));
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
commentsCommand
|
|
78
|
+
.command("resolve")
|
|
79
|
+
.description("Resolve a comment")
|
|
80
|
+
.argument("<commentId>", "Comment ID to resolve")
|
|
81
|
+
.requiredOption("--document <documentId>", "Document ID")
|
|
82
|
+
.option("--project <projectId>", "Project ID (auto-detected from git repo if omitted)")
|
|
83
|
+
.action(async (commentId, options, cmd) => {
|
|
84
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
85
|
+
try {
|
|
86
|
+
const projectId = options.project || await resolveProject(globalOpts.token);
|
|
87
|
+
const { ok, data } = await apiRequest(`/api/projects/${projectId}/documents/${options.document}/comments/${commentId}`, {
|
|
88
|
+
method: "PATCH",
|
|
89
|
+
body: { resolved: true },
|
|
90
|
+
token: globalOpts.token,
|
|
91
|
+
});
|
|
92
|
+
if (!ok) {
|
|
93
|
+
console.error(JSON.stringify({ error: "Failed to resolve comment", details: data }));
|
|
94
|
+
process.exit(1);
|
|
95
|
+
}
|
|
96
|
+
console.log(JSON.stringify(data, null, 2));
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
100
|
+
console.error(JSON.stringify({ error: message }));
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=comments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../src/commands/comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { apiRequest } from "../lib/api.js";
|
|
3
|
+
import { resolveProject } from "../lib/project.js";
|
|
4
|
+
const AGENT_DOCS = [
|
|
5
|
+
{ name: "Claude Code", file: "CLAUDE.md", url: "https://code.claude.com/docs/en/best-practices" },
|
|
6
|
+
{ name: "Cursor", file: ".cursor/rules/*.mdc", url: "https://docs.cursor.com/context/rules" },
|
|
7
|
+
{ name: "Codex", file: "AGENTS.md", url: "https://developers.openai.com/codex/guides/agents-md/" },
|
|
8
|
+
{ name: "Windsurf", file: ".windsurf/rules/*.md", url: "https://docs.windsurf.com/windsurf/cascade/workflows" },
|
|
9
|
+
{ name: "GitHub Copilot", file: ".github/copilot-instructions.md", url: "https://docs.github.com/copilot/customizing-copilot/adding-custom-instructions-for-github-copilot" },
|
|
10
|
+
{ name: "Gemini CLI", file: "GEMINI.md", url: "https://google-gemini.github.io/gemini-cli/docs/cli/gemini-md.html" },
|
|
11
|
+
{ name: "Cline", file: ".clinerules", url: "https://docs.cline.bot/customization/cline-rules" },
|
|
12
|
+
{ name: "Roo Code", file: ".roo/rules/*.md", url: "https://docs.roocode.com/features/custom-instructions" },
|
|
13
|
+
{ name: "Aider", file: "CONVENTIONS.md", url: "https://aider.chat/docs/usage/conventions.html" },
|
|
14
|
+
{ name: "Continue", file: ".continue/rules/*.md", url: "https://docs.continue.dev/customize/deep-dives/rules" },
|
|
15
|
+
{ name: "Augment", file: ".augment/rules/*.md", url: "https://docs.augmentcode.com/setup-augment/guidelines" },
|
|
16
|
+
{ name: "Devin", file: "AGENTS.md", url: "https://docs.devin.ai/onboard-devin/agents-md" },
|
|
17
|
+
{ name: "Amp", file: "AGENTS.md", url: "https://ampcode.com/agent.md" },
|
|
18
|
+
{ name: "Amazon Q", file: ".amazonq/rules/*.md", url: "https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/context-project-rules.html" },
|
|
19
|
+
{ name: "JetBrains AI", file: ".aiassistant/rules/*.md", url: "https://www.jetbrains.com/help/ai-assistant/configure-project-rules.html" },
|
|
20
|
+
{ name: "Zed", file: ".rules", url: "https://zed.dev/docs/ai/rules" },
|
|
21
|
+
];
|
|
22
|
+
function buildDocStandardsSection(docStandards) {
|
|
23
|
+
if (!docStandards)
|
|
24
|
+
return "";
|
|
25
|
+
const { custom_instructions, required_sections, structure_template } = docStandards;
|
|
26
|
+
const hasContent = custom_instructions || (required_sections && required_sections.length > 0) || structure_template;
|
|
27
|
+
if (!hasContent)
|
|
28
|
+
return "";
|
|
29
|
+
let section = "\n\n## Project Documentation Standards (MUST follow)\n";
|
|
30
|
+
if (custom_instructions) {
|
|
31
|
+
section += `\n${custom_instructions}\n`;
|
|
32
|
+
}
|
|
33
|
+
if (required_sections && required_sections.length > 0) {
|
|
34
|
+
section += `\nRequired sections in every document: ${required_sections.join(", ")}\n`;
|
|
35
|
+
}
|
|
36
|
+
if (structure_template) {
|
|
37
|
+
section += `\nDocument structure template:\n${structure_template}\n`;
|
|
38
|
+
}
|
|
39
|
+
return section;
|
|
40
|
+
}
|
|
41
|
+
export const setupCommand = new Command("setup")
|
|
42
|
+
.description("Output agent instruction content for your coding agent to consume")
|
|
43
|
+
.option("--project <id>", "Project ID (auto-detected from git)")
|
|
44
|
+
.option("--token <token>", "Auth token")
|
|
45
|
+
.option("--json", "Output as JSON")
|
|
46
|
+
.action(async (opts) => {
|
|
47
|
+
try {
|
|
48
|
+
const projectId = opts.project || (await resolveProject(opts.token));
|
|
49
|
+
// Fetch project details
|
|
50
|
+
const projRes = await apiRequest(`/api/projects/${projectId}`, { token: opts.token });
|
|
51
|
+
if (!projRes.ok || !projRes.data) {
|
|
52
|
+
console.error("Failed to fetch project details.");
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
const project = projRes.data.data;
|
|
56
|
+
const docStandards = project.doc_standards;
|
|
57
|
+
const docsRefList = AGENT_DOCS
|
|
58
|
+
.map(a => `- ${a.name} (${a.file}): ${a.url}`)
|
|
59
|
+
.join("\n");
|
|
60
|
+
const output = `# climemo setup for "${project.name}"
|
|
61
|
+
|
|
62
|
+
## Step 1: Find your instruction file format
|
|
63
|
+
|
|
64
|
+
Read the official documentation for YOUR agent's instruction file:
|
|
65
|
+
|
|
66
|
+
${docsRefList}
|
|
67
|
+
|
|
68
|
+
Find the one that matches you and read the documentation to understand the correct format and best practices.
|
|
69
|
+
|
|
70
|
+
## Step 2: Create or improve your instruction file
|
|
71
|
+
|
|
72
|
+
- If your instruction file already exists in this project: compare it with the official guide and suggest improvements.
|
|
73
|
+
- If it doesn't exist: create one following the official guide.
|
|
74
|
+
|
|
75
|
+
The file should cover:
|
|
76
|
+
- Project architecture and directory structure
|
|
77
|
+
- Coding conventions and patterns used in this project
|
|
78
|
+
- Build, test, and lint commands
|
|
79
|
+
- Important rules and gotchas specific to this project
|
|
80
|
+
${buildDocStandardsSection(docStandards)}
|
|
81
|
+
## Step 3: Include climemo CLI tools
|
|
82
|
+
|
|
83
|
+
This project uses climemo for documentation management. Include the following commands in your instruction file so you can use them during work:
|
|
84
|
+
|
|
85
|
+
\`\`\`
|
|
86
|
+
climemo sync # Sync local docs to the project (run after creating/modifying docs)
|
|
87
|
+
climemo ask "{question}" # Ask AI about project docs (run before implementing features)
|
|
88
|
+
climemo search "{keywords}" # Full-text search across project docs
|
|
89
|
+
climemo comments list # List comments on documents
|
|
90
|
+
climemo comments add "{comment}" # Add a comment
|
|
91
|
+
\`\`\`
|
|
92
|
+
|
|
93
|
+
Project slug: ${project.slug}
|
|
94
|
+
For full CLI reference: climemo --help or climemo <command> --help
|
|
95
|
+
|
|
96
|
+
### When to use these:
|
|
97
|
+
- After creating or editing markdown docs → run \`climemo sync\`
|
|
98
|
+
- Before implementing a feature → run \`climemo ask\` to check existing architecture/conventions
|
|
99
|
+
- Looking for specific topics or APIs → run \`climemo search\`
|
|
100
|
+
|
|
101
|
+
## Step 4: Language
|
|
102
|
+
|
|
103
|
+
Write the entire instruction file in the same language the user is currently using.`;
|
|
104
|
+
if (opts.json) {
|
|
105
|
+
console.log(JSON.stringify({ project: project.name, slug: project.slug, instructions: output }));
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
console.log(output);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
113
|
+
process.exit(1);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE9D;;GAEG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,IAAI,CAAC;QACH,yCAAyC;QACzC,MAAM,MAAM,GAAG,QAAQ,CACrB,sGAAsG,EACtG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACtE,CAAC;QACF,OAAO,MAAM;aACV,IAAI,EAAE;aACN,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,iEAAiE,CAAC;KAC9E,MAAM,CAAC,uBAAuB,EAAE,qDAAqD,CAAC;KACtF,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;KACvE,MAAM,CAAC,WAAW,EAAE,8CAA8C,CAAC;KACnE,MAAM,CAAC,kBAAkB,EAAE,sDAAsD,CAAC;KAClF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAE5E,iBAAiB;QACjB,IAAI,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEvC,iCAAiC;QACjC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,QAAQ,CACpB,yDAAyD,OAAO,CAAC,OAAO,GAAG,EAC3E,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAC1E,CAAC;gBACF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC7G,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC,CAAC,CAAC;YAClH,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CACrD,iBAAiB,SAAS,YAAY,EACtC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B,CAAC;QAEF,MAAM,YAAY,GAChB,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAE,QAA+F,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAExI,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,eAAe,GAAuC,EAAE,CAAC;QAE/D,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAEpC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEjC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,QAAQ,EAAE,CAAC;gBACb,4BAA4B;gBAC5B,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBACjC,OAAO,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBAED,iCAAiC;gBACjC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAC3C,iBAAiB,SAAS,cAAc,QAAQ,CAAC,EAAE,EAAE,EACrD;oBACE,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE;wBACJ,OAAO;wBACP,KAAK;wBACL,cAAc,EAAE,iBAAiB;wBACjC,gBAAgB,EAAE,QAAQ,CAAC,eAAe;qBAC3C;oBACD,KAAK,EAAE,UAAU,CAAC,KAAK;iBACxB,CACF,CAAC;gBAEF,IAAI,EAAE,EAAE,CAAC;oBACP,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC1B,SAAS,EAAE,CAAC;oBACZ,MAAM,YAAY,GAAG,IAA6D,CAAC;oBACnF,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,OAAO;wBACb,MAAM,EAAE,YAAY,EAAE,OAAO,IAAI,uCAAuC;qBACzE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,SAAS;gBACT,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CACrC,iBAAiB,SAAS,YAAY,EACtC;oBACE,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE;oBAC3D,KAAK,EAAE,UAAU,CAAC,KAAK;iBACxB,CACF,CAAC;gBAEF,IAAI,EAAE,EAAE,CAAC;oBACP,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC9D,iEAAiE;oBACjE,yDAAyD;oBACzD,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,UAAU,CAC/D,iBAAiB,SAAS,YAAY,EACtC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B,CAAC;oBAEF,IAAI,WAAW,IAAI,aAAa,EAAE,CAAC;wBACjC,MAAM,SAAS,GAAI,aAAmF,CAAC,IAAI,IAAI,EAAE,CAAC;wBAClH,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBAC3D,IAAI,QAAQ,EAAE,CAAC;4BACb,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,UAAU,CAC/E,iBAAiB,SAAS,cAAc,QAAQ,CAAC,EAAE,EAAE,EACrD;gCACE,MAAM,EAAE,OAAO;gCACf,IAAI,EAAE;oCACJ,OAAO;oCACP,KAAK;oCACL,cAAc,EAAE,iBAAiB;oCACjC,gBAAgB,EAAE,QAAQ,CAAC,eAAe;iCAC3C;gCACD,KAAK,EAAE,UAAU,CAAC,KAAK;6BACxB,CACF,CAAC;4BAEF,IAAI,QAAQ,EAAE,CAAC;gCACb,OAAO,EAAE,CAAC;4BACZ,CAAC;iCAAM,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;gCAChC,SAAS,EAAE,CAAC;gCACZ,MAAM,YAAY,GAAG,UAAyC,CAAC;gCAC/D,eAAe,CAAC,IAAI,CAAC;oCACnB,IAAI,EAAE,OAAO;oCACb,MAAM,EAAE,YAAY,EAAE,OAAO,IAAI,mDAAmD;iCACrF,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAA4B;YACtC,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;SACtE,CAAC;QACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,gBAAgB,GAAG,eAAe,CAAC;QAC5C,CAAC;QAED,sEAAsE;QACtE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,2DAA2D,EAAE,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACN,oCAAoC;gBACpC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CACrD,iBAAiB,SAAS,EAAE,EAC5B,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B,CAAC;gBACF,MAAM,KAAK,GAAG,MAAM,IAAI,QAAQ;oBAC9B,CAAC,CAAE,QAAkD,CAAC,IAAI,EAAE,eAAe;oBAC3E,CAAC,CAAC,IAAI,CAAC;gBAET,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,GAAG,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,UAAU,CACnD,gCAAgC,EAChC;wBACE,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE;4BACJ,YAAY,EAAE,MAAM,CAAC,KAAK;4BAC1B,WAAW,EAAE,MAAM,CAAC,IAAI;4BACxB,eAAe,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { apiRequest } from "../lib/api.js";
|
|
3
|
+
import { resolveProject } from "../lib/project.js";
|
|
4
|
+
/**
|
|
5
|
+
* Resolve a document ID from either a UUID or a file path.
|
|
6
|
+
* If the value looks like a UUID, return it directly.
|
|
7
|
+
* Otherwise, fetch the document list and match by path.
|
|
8
|
+
*/
|
|
9
|
+
async function resolveDocumentId(projectId, documentRef, token) {
|
|
10
|
+
const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
11
|
+
if (uuidPattern.test(documentRef)) {
|
|
12
|
+
return documentRef;
|
|
13
|
+
}
|
|
14
|
+
// Treat as file path — fetch documents and match
|
|
15
|
+
const { ok, data } = await apiRequest(`/api/projects/${projectId}/documents`, {
|
|
16
|
+
token,
|
|
17
|
+
});
|
|
18
|
+
if (!ok || !Array.isArray(data)) {
|
|
19
|
+
throw new Error(`Failed to list documents for project ${projectId}`);
|
|
20
|
+
}
|
|
21
|
+
const doc = data.find((d) => d.path === documentRef || d.file_path === documentRef);
|
|
22
|
+
if (!doc) {
|
|
23
|
+
throw new Error(`Document not found for path: ${documentRef}`);
|
|
24
|
+
}
|
|
25
|
+
return doc.id;
|
|
26
|
+
}
|
|
27
|
+
const listSubcommand = new Command("list")
|
|
28
|
+
.description("List all versions of a document")
|
|
29
|
+
.requiredOption("--document <documentId>", "Document ID (UUID) or file path")
|
|
30
|
+
.option("--project <projectId>", "Project ID (auto-detected from git repo if omitted)")
|
|
31
|
+
.action(async (options, cmd) => {
|
|
32
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
33
|
+
try {
|
|
34
|
+
const projectId = options.project || (await resolveProject(globalOpts.token));
|
|
35
|
+
const documentId = await resolveDocumentId(projectId, options.document, globalOpts.token);
|
|
36
|
+
const { ok, data } = await apiRequest(`/api/projects/${projectId}/documents/${documentId}/versions`, { token: globalOpts.token });
|
|
37
|
+
if (!ok) {
|
|
38
|
+
console.error(JSON.stringify({ error: "Failed to list versions", details: data }));
|
|
39
|
+
process.exit(1);
|
|
40
|
+
}
|
|
41
|
+
console.log(JSON.stringify(data, null, 2));
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
45
|
+
console.error(JSON.stringify({ error: message }));
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const diffSubcommand = new Command("diff")
|
|
50
|
+
.description("Compare two versions of a document")
|
|
51
|
+
.requiredOption("--document <documentId>", "Document ID (UUID) or file path")
|
|
52
|
+
.requiredOption("--v1 <versionNumber>", "First version number")
|
|
53
|
+
.requiredOption("--v2 <versionNumber>", "Second version number")
|
|
54
|
+
.option("--project <projectId>", "Project ID (auto-detected from git repo if omitted)")
|
|
55
|
+
.action(async (options, cmd) => {
|
|
56
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
57
|
+
try {
|
|
58
|
+
const projectId = options.project || (await resolveProject(globalOpts.token));
|
|
59
|
+
const documentId = await resolveDocumentId(projectId, options.document, globalOpts.token);
|
|
60
|
+
// Fetch version list to map version_number → versionId
|
|
61
|
+
const { ok: listOk, data: listData } = await apiRequest(`/api/projects/${projectId}/documents/${documentId}/versions`, { token: globalOpts.token });
|
|
62
|
+
if (!listOk || !Array.isArray(listData)) {
|
|
63
|
+
console.error(JSON.stringify({ error: "Failed to list versions", details: listData }));
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
const versions = listData;
|
|
67
|
+
const v1Num = parseInt(options.v1, 10);
|
|
68
|
+
const v2Num = parseInt(options.v2, 10);
|
|
69
|
+
const v1 = versions.find((v) => v.version_number === v1Num);
|
|
70
|
+
const v2 = versions.find((v) => v.version_number === v2Num);
|
|
71
|
+
if (!v1) {
|
|
72
|
+
console.error(JSON.stringify({ error: `Version ${v1Num} not found` }));
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
if (!v2) {
|
|
76
|
+
console.error(JSON.stringify({ error: `Version ${v2Num} not found` }));
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
// Fetch both versions' content
|
|
80
|
+
const [res1, res2] = await Promise.all([
|
|
81
|
+
apiRequest(`/api/projects/${projectId}/documents/${documentId}/versions/${v1.id}`, { token: globalOpts.token }),
|
|
82
|
+
apiRequest(`/api/projects/${projectId}/documents/${documentId}/versions/${v2.id}`, { token: globalOpts.token }),
|
|
83
|
+
]);
|
|
84
|
+
if (!res1.ok) {
|
|
85
|
+
console.error(JSON.stringify({ error: `Failed to fetch version ${v1Num}`, details: res1.data }));
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
if (!res2.ok) {
|
|
89
|
+
console.error(JSON.stringify({ error: `Failed to fetch version ${v2Num}`, details: res2.data }));
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
const content1 = res1.data.content || "";
|
|
93
|
+
const content2 = res2.data.content || "";
|
|
94
|
+
const lines1 = content1.split("\n");
|
|
95
|
+
const lines2 = content2.split("\n");
|
|
96
|
+
// Simple line-by-line diff
|
|
97
|
+
const diffLines = [];
|
|
98
|
+
const maxLen = Math.max(lines1.length, lines2.length);
|
|
99
|
+
for (let i = 0; i < maxLen; i++) {
|
|
100
|
+
const l1 = i < lines1.length ? lines1[i] : undefined;
|
|
101
|
+
const l2 = i < lines2.length ? lines2[i] : undefined;
|
|
102
|
+
if (l1 === l2) {
|
|
103
|
+
diffLines.push(` ${l1}`);
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
if (l1 !== undefined) {
|
|
107
|
+
diffLines.push(`- ${l1}`);
|
|
108
|
+
}
|
|
109
|
+
if (l2 !== undefined) {
|
|
110
|
+
diffLines.push(`+ ${l2}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
console.log(JSON.stringify({
|
|
115
|
+
document_id: documentId,
|
|
116
|
+
v1: v1Num,
|
|
117
|
+
v2: v2Num,
|
|
118
|
+
diff: diffLines,
|
|
119
|
+
}, null, 2));
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
123
|
+
console.error(JSON.stringify({ error: message }));
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
const revertSubcommand = new Command("revert")
|
|
128
|
+
.description("Revert a document to a specific version")
|
|
129
|
+
.requiredOption("--document <documentId>", "Document ID (UUID) or file path")
|
|
130
|
+
.requiredOption("--version <versionNumber>", "Version number to revert to")
|
|
131
|
+
.option("--project <projectId>", "Project ID (auto-detected from git repo if omitted)")
|
|
132
|
+
.action(async (options, cmd) => {
|
|
133
|
+
const globalOpts = cmd.optsWithGlobals();
|
|
134
|
+
try {
|
|
135
|
+
const projectId = options.project || (await resolveProject(globalOpts.token));
|
|
136
|
+
const documentId = await resolveDocumentId(projectId, options.document, globalOpts.token);
|
|
137
|
+
// Fetch version list to map version_number → versionId
|
|
138
|
+
const { ok: listOk, data: listData } = await apiRequest(`/api/projects/${projectId}/documents/${documentId}/versions`, { token: globalOpts.token });
|
|
139
|
+
if (!listOk || !Array.isArray(listData)) {
|
|
140
|
+
console.error(JSON.stringify({ error: "Failed to list versions", details: listData }));
|
|
141
|
+
process.exit(1);
|
|
142
|
+
}
|
|
143
|
+
const versions = listData;
|
|
144
|
+
const targetNum = parseInt(options.version, 10);
|
|
145
|
+
const target = versions.find((v) => v.version_number === targetNum);
|
|
146
|
+
if (!target) {
|
|
147
|
+
console.error(JSON.stringify({ error: `Version ${targetNum} not found` }));
|
|
148
|
+
process.exit(1);
|
|
149
|
+
}
|
|
150
|
+
const { ok, data } = await apiRequest(`/api/projects/${projectId}/documents/${documentId}/versions/${target.id}`, { method: "POST", token: globalOpts.token });
|
|
151
|
+
if (!ok) {
|
|
152
|
+
console.error(JSON.stringify({ error: "Failed to revert version", details: data }));
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
console.log(JSON.stringify(data, null, 2));
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
159
|
+
console.error(JSON.stringify({ error: message }));
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
export const versionsCommand = new Command("versions")
|
|
164
|
+
.description("Manage document versions (list, diff, revert)")
|
|
165
|
+
.addCommand(listSubcommand)
|
|
166
|
+
.addCommand(diffSubcommand)
|
|
167
|
+
.addCommand(revertSubcommand);
|
|
168
|
+
//# sourceMappingURL=versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../src/commands/versions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAUnD;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,SAAiB,EACjB,WAAmB,EACnB,KAAc;IAEd,MAAM,WAAW,GAAG,iEAAiE,CAAC;IACtF,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAClC,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,iDAAiD;IACjD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAC,iBAAiB,SAAS,YAAY,EAAE;QAC5E,KAAK;KACN,CAAC,CAAC;IAEH,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,SAAS,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,GAAG,GAAI,IAAiE,CAAC,IAAI,CACjF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,SAAS,KAAK,WAAW,CAC7D,CAAC;IAEF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,GAAG,CAAC,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACvC,WAAW,CAAC,iCAAiC,CAAC;KAC9C,cAAc,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;KAC5E,MAAM,CAAC,uBAAuB,EAAE,qDAAqD,CAAC;KACtF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAE1F,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CACnC,iBAAiB,SAAS,cAAc,UAAU,WAAW,EAC7D,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B,CAAC;QAEF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACvC,WAAW,CAAC,oCAAoC,CAAC;KACjD,cAAc,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;KAC5E,cAAc,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;KAC9D,cAAc,CAAC,sBAAsB,EAAE,uBAAuB,CAAC;KAC/D,MAAM,CAAC,uBAAuB,EAAE,qDAAqD,CAAC;KACtF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAE1F,uDAAuD;QACvD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CACrD,iBAAiB,SAAS,cAAc,UAAU,WAAW,EAC7D,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B,CAAC;QAEF,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,QAAqB,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC;QAC5D,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC;QAE5D,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+BAA+B;QAC/B,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrC,UAAU,CACR,iBAAiB,SAAS,cAAc,UAAU,aAAa,EAAE,CAAC,EAAE,EAAE,EACtE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B;YACD,UAAU,CACR,iBAAiB,SAAS,cAAc,UAAU,aAAa,EAAE,CAAC,EAAE,EAAE,EACtE,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,2BAA2B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,2BAA2B,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAK,IAAI,CAAC,IAAgC,CAAC,OAAkB,IAAI,EAAE,CAAC;QAClF,MAAM,QAAQ,GAAK,IAAI,CAAC,IAAgC,CAAC,OAAkB,IAAI,EAAE,CAAC;QAElF,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEpC,2BAA2B;QAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrD,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAErD,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACrB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC5B,CAAC;gBACD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;oBACrB,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;YACE,WAAW,EAAE,UAAU;YACvB,EAAE,EAAE,KAAK;YACT,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;SAChB,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,yCAAyC,CAAC;KACtD,cAAc,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;KAC5E,cAAc,CAAC,2BAA2B,EAAE,6BAA6B,CAAC;KAC1E,MAAM,CAAC,uBAAuB,EAAE,qDAAqD,CAAC;KACtF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;IAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;QAE1F,uDAAuD;QACvD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,CACrD,iBAAiB,SAAS,cAAc,UAAU,WAAW,EAC7D,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5B,CAAC;QAEF,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,QAAQ,GAAG,QAAqB,CAAC;QACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC;QAEpE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,SAAS,YAAY,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CACnC,iBAAiB,SAAS,cAAc,UAAU,aAAa,MAAM,CAAC,EAAE,EAAE,EAC1E,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAC5C,CAAC;QAEF,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KACnD,WAAW,CAAC,+CAA+C,CAAC;KAC5D,UAAU,CAAC,cAAc,CAAC;KAC1B,UAAU,CAAC,cAAc,CAAC;KAC1B,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,9 @@ import { syncCommand } from "./commands/sync.js";
|
|
|
13
13
|
import { inviteCommand } from "./commands/invite.js";
|
|
14
14
|
import { mergeCommand } from "./commands/merge.js";
|
|
15
15
|
import { membersCommand } from "./commands/members.js";
|
|
16
|
+
import { versionsCommand } from "./commands/versions.js";
|
|
17
|
+
import { commentsCommand } from "./commands/comments.js";
|
|
18
|
+
import { setupCommand } from "./commands/setup.js";
|
|
16
19
|
const program = new Command();
|
|
17
20
|
program
|
|
18
21
|
.name("climemo")
|
|
@@ -34,6 +37,9 @@ program.addCommand(membersCommand);
|
|
|
34
37
|
program.addCommand(askCommand);
|
|
35
38
|
program.addCommand(searchCommand);
|
|
36
39
|
program.addCommand(compareCommand);
|
|
40
|
+
program.addCommand(versionsCommand);
|
|
41
|
+
program.addCommand(commentsCommand);
|
|
42
|
+
program.addCommand(setupCommand);
|
|
37
43
|
// Global --token option for CI/CD
|
|
38
44
|
program.option("--token <token>", "Auth token (for CI/CD)");
|
|
39
45
|
program.parse();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,sBAAsB,CAAC;KACnC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,gBAAgB;AAChB,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,mBAAmB;AACnB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,cAAc;AACd,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,kCAAkC;AAClC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;AAE5D,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "climemo",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "AI 시대의 프로젝트 지식 관리 도구 - CLI for syncing project knowledge",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
|
-
"url": "https://github.com/runaidev/climemo"
|
|
8
|
+
"url": "git+https://github.com/runaidev/climemo.git"
|
|
9
9
|
},
|
|
10
10
|
"homepage": "https://climemo.com",
|
|
11
11
|
"keywords": [
|
|
@@ -20,10 +20,11 @@
|
|
|
20
20
|
],
|
|
21
21
|
"type": "module",
|
|
22
22
|
"bin": {
|
|
23
|
-
"climemo": "
|
|
23
|
+
"climemo": "dist/index.js"
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
|
-
"dist"
|
|
26
|
+
"dist",
|
|
27
|
+
"skills"
|
|
27
28
|
],
|
|
28
29
|
"engines": {
|
|
29
30
|
"node": ">=18"
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# climemo — Project Knowledge Management CLI
|
|
2
|
+
|
|
3
|
+
This project uses **climemo** to manage documentation. Use these commands during your work.
|
|
4
|
+
|
|
5
|
+
## Everyday Commands
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
climemo sync # Sync local docs to the project (run after creating/modifying docs)
|
|
9
|
+
climemo ask "{question}" # Ask AI about project docs (run before implementing features)
|
|
10
|
+
climemo search "{keywords}" # Full-text search across project docs
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
|
|
15
|
+
- **Before implementing a feature** → `climemo ask "how does auth work in this project?"` to check existing architecture
|
|
16
|
+
- **After creating or editing markdown docs** → `climemo sync` to upload changes
|
|
17
|
+
- **Looking for specific topics** → `climemo search "payment"` to find relevant docs
|
|
18
|
+
|
|
19
|
+
## Setup Your Instruction File
|
|
20
|
+
|
|
21
|
+
Run `climemo setup` to get a full prompt for creating/improving your agent instruction file (CLAUDE.md, .cursor/rules, AGENTS.md, etc.). This command outputs project-specific instructions including doc standards.
|
|
22
|
+
|
|
23
|
+
## Additional Commands
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
climemo comments list # List comments on documents
|
|
27
|
+
climemo comments add "{comment}" # Add a comment to a document
|
|
28
|
+
climemo versions list # List document versions
|
|
29
|
+
climemo versions diff <v1> <v2> # Compare two versions
|
|
30
|
+
climemo members list # List project members
|
|
31
|
+
climemo invite <email> # Invite a team member
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Full Reference
|
|
35
|
+
|
|
36
|
+
Run `climemo --help` or `climemo <command> --help` for all options.
|