@pedrocivita/tocket 2.2.2 → 2.3.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/README.md +3 -1
- package/dist/commands/init.cmd.js +9 -1
- package/dist/commands/init.cmd.js.map +1 -1
- package/dist/tests/init-templates.test.d.ts +1 -0
- package/dist/tests/init-templates.test.js +142 -0
- package/dist/tests/init-templates.test.js.map +1 -0
- package/dist/utils/templates.d.ts +8 -0
- package/dist/utils/templates.js +24 -0
- package/dist/utils/templates.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|

|
|
2
2
|
[](https://www.npmjs.com/package/@pedrocivita/tocket)
|
|
3
3
|
[](LICENSE)
|
|
4
|
+
[](https://tocket.ai)
|
|
4
5
|
|
|
5
6
|
# Tocket
|
|
6
7
|
|
|
@@ -181,10 +182,11 @@ Config is stored at `~/.tocketrc.json` and pre-fills author, priority, and skill
|
|
|
181
182
|
| [Developer Guide](docs/DEVELOPERS_GUIDE.md) | How to run the Tocket protocol safely in any project |
|
|
182
183
|
| [Tocket Rules](docs/TOCKET_RULES.md) | Complete reference for all protocol rules |
|
|
183
184
|
| [Protocol Spec](TOCKET.md) | The agent-agnostic protocol specification |
|
|
185
|
+
| [Walkthrough](examples/walkthrough.md) | End-to-end payload exchange example |
|
|
184
186
|
|
|
185
187
|
## Contributing
|
|
186
188
|
|
|
187
|
-
We welcome contributions!
|
|
189
|
+
We welcome contributions! Visit [tocket.ai](https://tocket.ai) for an overview of the framework, then read our [Contributing Guide](CONTRIBUTING.md) to get started.
|
|
188
190
|
|
|
189
191
|
This project follows a [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
190
192
|
|
|
@@ -4,6 +4,7 @@ import { join } from "node:path";
|
|
|
4
4
|
import { banner, heading, info, success, warn, dim } from "../utils/theme.js";
|
|
5
5
|
import { isContextIgnored } from "../utils/git.js";
|
|
6
6
|
import { getConfig } from "../utils/config.js";
|
|
7
|
+
import { readGlobalTemplate } from "../utils/templates.js";
|
|
7
8
|
import { claudeMd, geminiMd, tocketMd, activeContextMd, systemPatternsMd, productContextMd, techContextMd, progressMd, cursorrulesMd, } from "../templates/memory-bank.js";
|
|
8
9
|
async function fileExists(path) {
|
|
9
10
|
try {
|
|
@@ -188,7 +189,12 @@ export function registerInitCommand(program) {
|
|
|
188
189
|
const filesToWrite = minimal
|
|
189
190
|
? files.filter(([path]) => minimalPaths.has(path))
|
|
190
191
|
: files;
|
|
191
|
-
|
|
192
|
+
const templateVars = {
|
|
193
|
+
projectName,
|
|
194
|
+
description,
|
|
195
|
+
date: new Date().toISOString().split("T")[0],
|
|
196
|
+
};
|
|
197
|
+
for (const [filePath, builtInContent] of filesToWrite) {
|
|
192
198
|
const fullPath = join(cwd, filePath);
|
|
193
199
|
const exists = await fileExists(fullPath);
|
|
194
200
|
if (exists && !force) {
|
|
@@ -201,6 +207,8 @@ export function registerInitCommand(program) {
|
|
|
201
207
|
continue;
|
|
202
208
|
}
|
|
203
209
|
}
|
|
210
|
+
const userContent = await readGlobalTemplate(filePath, templateVars);
|
|
211
|
+
const content = userContent ?? builtInContent;
|
|
204
212
|
await writeFile(fullPath, content, "utf-8");
|
|
205
213
|
console.log(" " + success(`${exists ? "updated" : "created"} ${filePath}`));
|
|
206
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.cmd.js","sourceRoot":"","sources":["../../src/commands/init.cmd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.cmd.js","sourceRoot":"","sources":["../../src/commands/init.cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { describe, it, before, after } from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { mkdtempSync, rmSync, mkdirSync, writeFileSync, readFileSync, existsSync } from "node:fs";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { execSync } from "node:child_process";
|
|
7
|
+
import { interpolateTemplate, readGlobalTemplate, getGlobalTemplatesPath, } from "../utils/templates.js";
|
|
8
|
+
const vars = {
|
|
9
|
+
projectName: "MyProject",
|
|
10
|
+
description: "A test project",
|
|
11
|
+
date: "2026-02-25",
|
|
12
|
+
};
|
|
13
|
+
// ─── interpolateTemplate ────────────────────────────────────────────
|
|
14
|
+
describe("interpolateTemplate", () => {
|
|
15
|
+
it("replaces {{projectName}}", () => {
|
|
16
|
+
const result = interpolateTemplate("Hello {{projectName}}", vars);
|
|
17
|
+
assert.equal(result, "Hello MyProject");
|
|
18
|
+
});
|
|
19
|
+
it("replaces {{description}}", () => {
|
|
20
|
+
const result = interpolateTemplate("Desc: {{description}}", vars);
|
|
21
|
+
assert.equal(result, "Desc: A test project");
|
|
22
|
+
});
|
|
23
|
+
it("replaces {{date}}", () => {
|
|
24
|
+
const result = interpolateTemplate("Date: {{date}}", vars);
|
|
25
|
+
assert.equal(result, "Date: 2026-02-25");
|
|
26
|
+
});
|
|
27
|
+
it("replaces all variables in a single string", () => {
|
|
28
|
+
const tpl = "# {{projectName}}\n> {{description}}\nCreated: {{date}}";
|
|
29
|
+
const result = interpolateTemplate(tpl, vars);
|
|
30
|
+
assert.ok(result.includes("# MyProject"));
|
|
31
|
+
assert.ok(result.includes("> A test project"));
|
|
32
|
+
assert.ok(result.includes("Created: 2026-02-25"));
|
|
33
|
+
});
|
|
34
|
+
it("replaces multiple occurrences of the same variable", () => {
|
|
35
|
+
const tpl = "{{projectName}} and {{projectName}} again";
|
|
36
|
+
const result = interpolateTemplate(tpl, vars);
|
|
37
|
+
assert.equal(result, "MyProject and MyProject again");
|
|
38
|
+
});
|
|
39
|
+
it("leaves unknown placeholders untouched", () => {
|
|
40
|
+
const result = interpolateTemplate("{{unknown}} stays", vars);
|
|
41
|
+
assert.equal(result, "{{unknown}} stays");
|
|
42
|
+
});
|
|
43
|
+
it("handles empty description", () => {
|
|
44
|
+
const emptyVars = { ...vars, description: "" };
|
|
45
|
+
const result = interpolateTemplate("Desc: {{description}}.", emptyVars);
|
|
46
|
+
assert.equal(result, "Desc: .");
|
|
47
|
+
});
|
|
48
|
+
it("returns content unchanged when no placeholders exist", () => {
|
|
49
|
+
const raw = "No placeholders here.";
|
|
50
|
+
const result = interpolateTemplate(raw, vars);
|
|
51
|
+
assert.equal(result, raw);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
// ─── getGlobalTemplatesPath ─────────────────────────────────────────
|
|
55
|
+
describe("getGlobalTemplatesPath", () => {
|
|
56
|
+
it("returns a path containing .tocket/templates", () => {
|
|
57
|
+
const p = getGlobalTemplatesPath();
|
|
58
|
+
assert.ok(p.includes(".tocket"));
|
|
59
|
+
assert.ok(p.includes("templates"));
|
|
60
|
+
});
|
|
61
|
+
it("respects baseDir override", () => {
|
|
62
|
+
const base = join(tmpdir(), "custom-base");
|
|
63
|
+
const p = getGlobalTemplatesPath(base);
|
|
64
|
+
assert.ok(p.startsWith(base));
|
|
65
|
+
assert.ok(p.includes(".tocket"));
|
|
66
|
+
assert.ok(p.includes("templates"));
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
// ─── readGlobalTemplate - fallback ──────────────────────────────────
|
|
70
|
+
describe("readGlobalTemplate - fallback", () => {
|
|
71
|
+
it("returns null when templates directory does not exist", async () => {
|
|
72
|
+
const result = await readGlobalTemplate("CLAUDE.md", vars, "/nonexistent/path");
|
|
73
|
+
assert.equal(result, null);
|
|
74
|
+
});
|
|
75
|
+
it("returns null when specific file does not exist in templates dir", async () => {
|
|
76
|
+
const tempDir = mkdtempSync(join(tmpdir(), "tocket-tpl-fallback-"));
|
|
77
|
+
try {
|
|
78
|
+
const result = await readGlobalTemplate("CLAUDE.md", vars, tempDir);
|
|
79
|
+
assert.equal(result, null);
|
|
80
|
+
}
|
|
81
|
+
finally {
|
|
82
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
// ─── readGlobalTemplate - override ──────────────────────────────────
|
|
87
|
+
describe("readGlobalTemplate - override", () => {
|
|
88
|
+
let tempDir;
|
|
89
|
+
before(() => {
|
|
90
|
+
tempDir = mkdtempSync(join(tmpdir(), "tocket-tpl-override-"));
|
|
91
|
+
mkdirSync(join(tempDir, ".context"), { recursive: true });
|
|
92
|
+
writeFileSync(join(tempDir, "CLAUDE.md"), "# Custom CLAUDE for {{projectName}}\n> {{description}}\n", "utf-8");
|
|
93
|
+
writeFileSync(join(tempDir, ".context", "activeContext.md"), "# Active Context - {{projectName}}\nDate: {{date}}\n", "utf-8");
|
|
94
|
+
writeFileSync(join(tempDir, "TOCKET.md"), "Static content without any variables.\n", "utf-8");
|
|
95
|
+
});
|
|
96
|
+
after(() => {
|
|
97
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
98
|
+
});
|
|
99
|
+
it("reads and interpolates a flat file override", async () => {
|
|
100
|
+
const result = await readGlobalTemplate("CLAUDE.md", vars, tempDir);
|
|
101
|
+
assert.ok(result !== null);
|
|
102
|
+
assert.ok(result.includes("# Custom CLAUDE for MyProject"));
|
|
103
|
+
assert.ok(result.includes("> A test project"));
|
|
104
|
+
});
|
|
105
|
+
it("reads and interpolates a subdirectory file override", async () => {
|
|
106
|
+
const filePath = join(".context", "activeContext.md");
|
|
107
|
+
const result = await readGlobalTemplate(filePath, vars, tempDir);
|
|
108
|
+
assert.ok(result !== null);
|
|
109
|
+
assert.ok(result.includes("# Active Context - MyProject"));
|
|
110
|
+
assert.ok(result.includes("Date: 2026-02-25"));
|
|
111
|
+
});
|
|
112
|
+
it("returns content as-is when template has no placeholders", async () => {
|
|
113
|
+
const result = await readGlobalTemplate("TOCKET.md", vars, tempDir);
|
|
114
|
+
assert.equal(result, "Static content without any variables.\n");
|
|
115
|
+
});
|
|
116
|
+
it("returns null for a file not in the override directory", async () => {
|
|
117
|
+
const result = await readGlobalTemplate("GEMINI.md", vars, tempDir);
|
|
118
|
+
assert.equal(result, null);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
// ─── init integration - built-in fallback ───────────────────────────
|
|
122
|
+
describe("init - built-in fallback (integration)", () => {
|
|
123
|
+
let tempDir;
|
|
124
|
+
const cliPath = join(import.meta.dirname, "..", "index.js");
|
|
125
|
+
before(() => {
|
|
126
|
+
tempDir = mkdtempSync(join(tmpdir(), "tocket-tpl-init-"));
|
|
127
|
+
});
|
|
128
|
+
after(() => {
|
|
129
|
+
rmSync(tempDir, { recursive: true, force: true });
|
|
130
|
+
});
|
|
131
|
+
it("creates files with built-in content when no global templates exist", () => {
|
|
132
|
+
execSync(`node "${cliPath}" init --minimal --name TestFallback --description "Fallback test" --force`, { cwd: tempDir, encoding: "utf-8" });
|
|
133
|
+
assert.ok(existsSync(join(tempDir, "TOCKET.md")));
|
|
134
|
+
assert.ok(existsSync(join(tempDir, ".context", "activeContext.md")));
|
|
135
|
+
assert.ok(existsSync(join(tempDir, ".context", "systemPatterns.md")));
|
|
136
|
+
const tocket = readFileSync(join(tempDir, "TOCKET.md"), "utf-8");
|
|
137
|
+
assert.ok(tocket.includes("TestFallback"));
|
|
138
|
+
const active = readFileSync(join(tempDir, ".context", "activeContext.md"), "utf-8");
|
|
139
|
+
assert.ok(active.includes("TestFallback"));
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=init-templates.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-templates.test.js","sourceRoot":"","sources":["../../src/tests/init-templates.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export interface TemplateVars {
|
|
2
|
+
projectName: string;
|
|
3
|
+
description: string;
|
|
4
|
+
date: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function getGlobalTemplatesPath(baseDir?: string): string;
|
|
7
|
+
export declare function interpolateTemplate(content: string, vars: TemplateVars): string;
|
|
8
|
+
export declare function readGlobalTemplate(filePath: string, vars: TemplateVars, templatesDir?: string): Promise<string | null>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
export function getGlobalTemplatesPath(baseDir) {
|
|
5
|
+
return join(baseDir ?? homedir(), ".tocket", "templates");
|
|
6
|
+
}
|
|
7
|
+
export function interpolateTemplate(content, vars) {
|
|
8
|
+
return content
|
|
9
|
+
.replaceAll("{{projectName}}", vars.projectName)
|
|
10
|
+
.replaceAll("{{description}}", vars.description)
|
|
11
|
+
.replaceAll("{{date}}", vars.date);
|
|
12
|
+
}
|
|
13
|
+
export async function readGlobalTemplate(filePath, vars, templatesDir) {
|
|
14
|
+
const dir = templatesDir ?? getGlobalTemplatesPath();
|
|
15
|
+
const fullPath = join(dir, filePath);
|
|
16
|
+
try {
|
|
17
|
+
const raw = await readFile(fullPath, "utf-8");
|
|
18
|
+
return interpolateTemplate(raw, vars);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAQ5C,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,OAAe,EACf,IAAkB;IAElB,OAAO,OAAO;SACX,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC;SAC/C,UAAU,CAAC,iBAAiB,EAAE,IAAI,CAAC,WAAW,CAAC;SAC/C,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,IAAkB,EAClB,YAAqB;IAErB,MAAM,GAAG,GAAG,YAAY,IAAI,sBAAsB,EAAE,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pedrocivita/tocket",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "The Context Engineering Framework for Multi-Agent Workspaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"bugs": {
|
|
32
32
|
"url": "https://github.com/pedrocivita/tocket/issues"
|
|
33
33
|
},
|
|
34
|
-
"homepage": "https://
|
|
34
|
+
"homepage": "https://tocket.ai",
|
|
35
35
|
"publishConfig": {
|
|
36
36
|
"registry": "https://registry.npmjs.org/",
|
|
37
37
|
"access": "public"
|