@pedrocivita/tocket 2.3.0 → 2.5.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.
Files changed (60) hide show
  1. package/README.md +36 -13
  2. package/dist/commands/config.cmd.js +33 -6
  3. package/dist/commands/config.cmd.js.map +1 -1
  4. package/dist/commands/dashboard.js +2 -0
  5. package/dist/commands/dashboard.js.map +1 -1
  6. package/dist/commands/diff.cmd.d.ts +15 -0
  7. package/dist/commands/diff.cmd.js +106 -0
  8. package/dist/commands/diff.cmd.js.map +1 -0
  9. package/dist/commands/doctor.cmd.js +24 -0
  10. package/dist/commands/doctor.cmd.js.map +1 -1
  11. package/dist/commands/generate.cmd.js +7 -1
  12. package/dist/commands/generate.cmd.js.map +1 -1
  13. package/dist/commands/handoff.cmd.d.ts +14 -0
  14. package/dist/commands/handoff.cmd.js +131 -0
  15. package/dist/commands/handoff.cmd.js.map +1 -0
  16. package/dist/commands/init.cmd.js +19 -7
  17. package/dist/commands/init.cmd.js.map +1 -1
  18. package/dist/index.js +4 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/templates/memory-bank.d.ts +9 -5
  21. package/dist/templates/memory-bank.js +22 -18
  22. package/dist/templates/memory-bank.js.map +1 -1
  23. package/dist/tests/agents.test.d.ts +1 -0
  24. package/dist/tests/agents.test.js +102 -0
  25. package/dist/tests/agents.test.js.map +1 -0
  26. package/dist/tests/config.test.js +39 -0
  27. package/dist/tests/config.test.js.map +1 -1
  28. package/dist/tests/diff.test.d.ts +1 -0
  29. package/dist/tests/diff.test.js +119 -0
  30. package/dist/tests/diff.test.js.map +1 -0
  31. package/dist/tests/git.test.js +15 -1
  32. package/dist/tests/git.test.js.map +1 -1
  33. package/dist/tests/handoff.test.d.ts +1 -0
  34. package/dist/tests/handoff.test.js +97 -0
  35. package/dist/tests/handoff.test.js.map +1 -0
  36. package/dist/tests/init-templates.test.js +25 -0
  37. package/dist/tests/init-templates.test.js.map +1 -1
  38. package/dist/tests/init.test.js +3 -2
  39. package/dist/tests/init.test.js.map +1 -1
  40. package/dist/tests/memory-bank.test.js +58 -13
  41. package/dist/tests/memory-bank.test.js.map +1 -1
  42. package/dist/tests/xml.test.d.ts +1 -0
  43. package/dist/tests/xml.test.js +139 -0
  44. package/dist/tests/xml.test.js.map +1 -0
  45. package/dist/utils/agents.d.ts +8 -0
  46. package/dist/utils/agents.js +29 -0
  47. package/dist/utils/agents.js.map +1 -0
  48. package/dist/utils/config.d.ts +4 -0
  49. package/dist/utils/config.js +1 -0
  50. package/dist/utils/config.js.map +1 -1
  51. package/dist/utils/git.d.ts +2 -0
  52. package/dist/utils/git.js +27 -0
  53. package/dist/utils/git.js.map +1 -1
  54. package/dist/utils/templates.d.ts +4 -0
  55. package/dist/utils/templates.js +5 -1
  56. package/dist/utils/templates.js.map +1 -1
  57. package/dist/utils/xml.d.ts +22 -0
  58. package/dist/utils/xml.js +54 -0
  59. package/dist/utils/xml.js.map +1 -0
  60. package/package.json +1 -1
package/README.md CHANGED
@@ -25,9 +25,9 @@ your-project/
25
25
  techContext.md # Stack and build tools
26
26
  productContext.md # What the product is and why
27
27
  progress.md # What's done, what's next
28
- TOCKET.md # Protocol rules (for any AI)
29
- CLAUDE.md # Executor agent config
30
- GEMINI.md # Architect agent config
28
+ TOCKET.md # Protocol rules (agent-agnostic)
29
+ CLAUDE.md # Executor instructions (auto-detected per agent)
30
+ GEMINI.md # Architect instructions (auto-detected per agent)
31
31
  ```
32
32
 
33
33
  All files are plain markdown, committed to git, and readable by any tool.
@@ -45,12 +45,15 @@ The CLI automates the scaffolding, provides smart defaults, and adds quality-of-
45
45
  ## Quick Start
46
46
 
47
47
  ```bash
48
- # Scaffold a new workspace (creates .context/, TOCKET.md, CLAUDE.md, GEMINI.md)
48
+ # Scaffold a new workspace
49
49
  npx @pedrocivita/tocket init
50
50
 
51
51
  # Or just the essentials (3 files)
52
52
  npx @pedrocivita/tocket init --minimal
53
53
 
54
+ # Configure your agents (optional — defaults to Claude Code + Gemini)
55
+ npx @pedrocivita/tocket config --architect "Gemini" --executor "Claude Code"
56
+
54
57
  # Or open the interactive dashboard
55
58
  npx @pedrocivita/tocket
56
59
  ```
@@ -64,7 +67,7 @@ Tocket writes files to your repo, but you can try it risk-free on a branch:
64
67
  ```bash
65
68
  git checkout -b test/tocket-setup
66
69
  npx @pedrocivita/tocket init
67
- git add .context/ TOCKET.md CLAUDE.md GEMINI.md .cursorrules
70
+ git add .context/ TOCKET.md CLAUDE.md GEMINI.md
68
71
  git commit -m "chore: scaffold Tocket workspace"
69
72
 
70
73
  # Try it out — run some AI sessions, see if you like it
@@ -81,7 +84,7 @@ See the [Developer Guide](docs/DEVELOPERS_GUIDE.md) for detailed safe-testing wo
81
84
  | Command | What it does |
82
85
  | --- | --- |
83
86
  | `tocket` | Interactive dashboard with guided menu |
84
- | `tocket init` | Scaffold `.context/`, `TOCKET.md`, and agent configs (auto-detects your stack) |
87
+ | `tocket init` | Scaffold `.context/`, `TOCKET.md`, and agent configs (auto-detects stack + agents) |
85
88
  | `tocket generate` | Build structured payload XML (auto-fills scope from git) |
86
89
  | `tocket sync` | Append session summary + git log to `.context/progress.md` |
87
90
  | `tocket validate` | Check if the workspace has a valid Memory Bank |
@@ -89,7 +92,7 @@ See the [Developer Guide](docs/DEVELOPERS_GUIDE.md) for detailed safe-testing wo
89
92
  | `tocket status` | Quick overview: workspace health, branch, focus, agents |
90
93
  | `tocket doctor` | Deep workspace diagnostics (content health, git tracking, staleness) |
91
94
  | `tocket lint` | Audit `.context/` content quality and suggest improvements |
92
- | `tocket config` | Manage global settings (`~/.tocketrc.json`) |
95
+ | `tocket config` | Manage global settings: agent roles, author, priority (`~/.tocketrc.json`) |
93
96
  | `tocket eject` | Remove all Tocket files (with confirmation) |
94
97
 
95
98
  ### CI-friendly flags
@@ -153,26 +156,46 @@ The Architect doesn't write code. The Executor doesn't make architecture decisio
153
156
  | Tool | What it does | How Tocket differs |
154
157
  | --- | --- | --- |
155
158
  | `.cursorrules` | Single-agent instructions for Cursor | Tocket defines _inter-agent_ protocol, not just single-agent rules |
156
- | `CLAUDE.md` | Instructions for Claude Code | Tocket generates `CLAUDE.md` as part of a broader multi-agent system |
159
+ | `CLAUDE.md` | Instructions for Claude Code | Tocket generates agent configs as part of a broader multi-agent system |
157
160
  | `AGENTS.md` | Codex agent instructions | Same idea for one agent; Tocket coordinates multiple agents |
158
161
  | Prompt templates | Static prompts for LLMs | Tocket's Memory Bank evolves with the project; payloads are structured, not freeform |
162
+ | Vendor-locked tools | Tied to one provider | Tocket works with **any LLM/tool** — configure via `tocket config` |
159
163
 
160
164
  ## Configuration
161
165
 
162
- Set global defaults so you don't repeat yourself:
166
+ Configure your preferred agents and defaults:
163
167
 
164
168
  ```bash
165
- # Interactive setup
166
- tocket config
169
+ # Configure your agent roles
170
+ tocket config --architect "Gemini" --executor "Claude Code"
167
171
 
168
- # Or use flags (CI-friendly)
172
+ # Set payload defaults
169
173
  tocket config --author "Your Name" --priority medium --skills "core,lsp"
170
174
 
175
+ # Or use the interactive setup (sections: Identity, Agent Roles, Payload Defaults)
176
+ tocket config
177
+
171
178
  # View current config
172
179
  tocket config --show
173
180
  ```
174
181
 
175
- Config is stored at `~/.tocketrc.json` and pre-fills author, priority, and skills in all commands.
182
+ Config is stored at `~/.tocketrc.json`.
183
+
184
+ ### Supported Agents
185
+
186
+ Tocket auto-generates the correct instruction file for each agent:
187
+
188
+ | Agent | Role | Generated File |
189
+ | --- | --- | --- |
190
+ | Claude Code | Executor | `CLAUDE.md` |
191
+ | Cursor | Executor | `.cursorrules` |
192
+ | Windsurf | Executor | `.windsurfrules` |
193
+ | Copilot | Executor | `.github/copilot-instructions.md` |
194
+ | Gemini | Architect | `GEMINI.md` |
195
+ | _(any other)_ | Executor | `EXECUTOR.md` |
196
+ | _(any other)_ | Architect | `ARCHITECT.md` |
197
+
198
+ Don't see your agent? It still works — unknown agents get generic files, and you can override any template via [`~/.tocket/templates/`](docs/DEVELOPERS_GUIDE.md).
176
199
 
177
200
  ## Documentation
178
201
 
@@ -1,12 +1,15 @@
1
1
  import { input, select, confirm } from "@inquirer/prompts";
2
2
  import { getConfig, saveConfig, resetConfig, getConfigPath, } from "../utils/config.js";
3
+ import { DEFAULT_ARCHITECT, DEFAULT_EXECUTOR } from "../utils/agents.js";
3
4
  import { success, heading, dim } from "../utils/theme.js";
4
5
  export function registerConfigCommand(program) {
5
6
  program
6
7
  .command("config")
7
8
  .description("Manage global Tocket configuration (~/.tocketrc.json)")
8
9
  .option("--author <name>", "Set default author name")
9
- .option("--agent <name>", "Set default agent name")
10
+ .option("--agent <name>", "Set default agent name (deprecated, use --architect/--executor)")
11
+ .option("--architect <name>", "Set architect agent (e.g. Gemini, ChatGPT)")
12
+ .option("--executor <name>", "Set executor agent (e.g. \"Claude Code\", Cursor, Windsurf)")
10
13
  .option("--priority <level>", "Set default priority (high|medium|low)")
11
14
  .option("--skills <list>", "Set default skills (comma-separated)")
12
15
  .option("--show", "Display current configuration")
@@ -42,13 +45,24 @@ export function registerConfigCommand(program) {
42
45
  return;
43
46
  }
44
47
  // Non-interactive: handle individual flags
45
- const hasFlags = options.author || options.agent || options.priority || options.skills;
48
+ const hasFlags = options.author || options.agent || options.architect ||
49
+ options.executor || options.priority || options.skills;
46
50
  if (hasFlags) {
47
51
  const config = await getConfig();
48
52
  if (options.author)
49
53
  config.author = options.author;
50
54
  if (options.agent)
51
55
  config.defaultAgent = options.agent;
56
+ if (options.architect) {
57
+ if (!config.agents)
58
+ config.agents = {};
59
+ config.agents.architect = options.architect;
60
+ }
61
+ if (options.executor) {
62
+ if (!config.agents)
63
+ config.agents = {};
64
+ config.agents.executor = options.executor;
65
+ }
52
66
  if (options.priority) {
53
67
  if (!config.defaults)
54
68
  config.defaults = {};
@@ -66,14 +80,24 @@ export function registerConfigCommand(program) {
66
80
  // Interactive TUI mode
67
81
  const current = await getConfig();
68
82
  console.log(heading("\n Tocket Configuration\n"));
83
+ // ── Identity ──
84
+ console.log(dim(" ── Identity ──\n"));
69
85
  const author = await input({
70
86
  message: "Author name:",
71
87
  default: current.author || undefined,
72
88
  });
73
- const agent = await input({
74
- message: "Default agent name:",
75
- default: current.defaultAgent || undefined,
89
+ // ── Agent Roles ──
90
+ console.log(dim("\n ── Agent Roles ──\n"));
91
+ const architect = await input({
92
+ message: "Architect (planner):",
93
+ default: current.agents?.architect || DEFAULT_ARCHITECT,
76
94
  });
95
+ const executor = await input({
96
+ message: "Executor (implementer):",
97
+ default: current.agents?.executor || DEFAULT_EXECUTOR,
98
+ });
99
+ // ── Payload Defaults ──
100
+ console.log(dim("\n ── Payload Defaults ──\n"));
77
101
  const priority = await select({
78
102
  message: "Default priority:",
79
103
  choices: [
@@ -90,7 +114,10 @@ export function registerConfigCommand(program) {
90
114
  await saveConfig({
91
115
  ...current,
92
116
  author: author || undefined,
93
- defaultAgent: agent || undefined,
117
+ agents: {
118
+ architect: architect || undefined,
119
+ executor: executor || undefined,
120
+ },
94
121
  defaults: {
95
122
  priority: priority,
96
123
  skills: skills || undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"config.cmd.js","sourceRoot":"","sources":["../../src/commands/config.cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.cmd.js","sourceRoot":"","sources":["../../src/commands/config.cmd.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,9 @@ export async function showDashboard(program) {
34
34
  const choices = hasWorkspace
35
35
  ? [
36
36
  { value: "generate", name: "Generate payload" },
37
+ { value: "diff", name: "Diff payload vs changes" },
37
38
  { value: "sync", name: "Sync progress" },
39
+ { value: "handoff", name: "Handoff summary" },
38
40
  { value: "validate", name: "Validate workspace" },
39
41
  { value: "focus", name: "Update focus" },
40
42
  { value: "status", name: "Workspace status" },
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Command } from "commander";
2
+ import type { ParsedPayload } from "../utils/xml.js";
3
+ export interface DiffReport {
4
+ payload: ParsedPayload;
5
+ expectedFiles: string[];
6
+ actualFiles: string[];
7
+ matchedFiles: string[];
8
+ missingFiles: string[];
9
+ extraFiles: string[];
10
+ doneCriteria: string[];
11
+ checks: string[];
12
+ }
13
+ export declare function buildDiffReport(payload: ParsedPayload, actualFiles: string[]): DiffReport;
14
+ export declare function formatDiffReport(report: DiffReport): string;
15
+ export declare function registerDiffCommand(program: Command): void;
@@ -0,0 +1,106 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { heading, success, warn, error as themeError, dim, } from "../utils/theme.js";
4
+ import { parsePayloadXml } from "../utils/xml.js";
5
+ import { getDiffFiles, isGitRepo } from "../utils/git.js";
6
+ export function buildDiffReport(payload, actualFiles) {
7
+ const expectedFiles = payload.tasks
8
+ .map((t) => t.target)
9
+ .filter((t) => t.length > 0);
10
+ const actualSet = new Set(actualFiles);
11
+ const expectedSet = new Set(expectedFiles);
12
+ const matchedFiles = expectedFiles.filter((f) => actualSet.has(f));
13
+ const missingFiles = expectedFiles.filter((f) => !actualSet.has(f));
14
+ const extraFiles = actualFiles.filter((f) => !expectedSet.has(f));
15
+ const doneCriteria = payload.tasks
16
+ .map((t) => t.done)
17
+ .filter((d) => d.length > 0);
18
+ return {
19
+ payload,
20
+ expectedFiles,
21
+ actualFiles,
22
+ matchedFiles,
23
+ missingFiles,
24
+ extraFiles,
25
+ doneCriteria,
26
+ checks: payload.checks,
27
+ };
28
+ }
29
+ export function formatDiffReport(report) {
30
+ const lines = [];
31
+ lines.push(heading("\n Tocket Diff Report\n"));
32
+ lines.push(dim(` Payload v${report.payload.version} — "${report.payload.meta.intent}"`));
33
+ lines.push("");
34
+ // File coverage
35
+ lines.push(heading(" File Coverage"));
36
+ for (const f of report.matchedFiles) {
37
+ lines.push(` ${success(f)}`);
38
+ }
39
+ for (const f of report.missingFiles) {
40
+ lines.push(` ${themeError(f)} ${dim("(expected but not changed)")}`);
41
+ }
42
+ for (const f of report.extraFiles) {
43
+ lines.push(` ${warn(f)} ${dim("(changed but not in payload)")}`);
44
+ }
45
+ if (report.expectedFiles.length === 0) {
46
+ lines.push(dim(" No specific file targets in payload"));
47
+ }
48
+ lines.push("");
49
+ // Summary line
50
+ const total = report.expectedFiles.length;
51
+ const matched = report.matchedFiles.length;
52
+ lines.push(dim(` ${matched}/${total} expected files changed, ${report.extraFiles.length} extra file(s)`));
53
+ lines.push("");
54
+ // Done criteria checklist
55
+ if (report.doneCriteria.length > 0) {
56
+ lines.push(heading(" Done Criteria"));
57
+ for (const d of report.doneCriteria) {
58
+ lines.push(` [ ] ${d}`);
59
+ }
60
+ lines.push("");
61
+ }
62
+ // Validate checks
63
+ if (report.checks.length > 0) {
64
+ lines.push(heading(" Validation Checks"));
65
+ for (const c of report.checks) {
66
+ lines.push(` [ ] ${c}`);
67
+ }
68
+ lines.push("");
69
+ }
70
+ return lines.join("\n");
71
+ }
72
+ export function registerDiffCommand(program) {
73
+ program
74
+ .command("diff")
75
+ .description("Compare payload targets against actual git changes")
76
+ .argument("[payload-path]", "Path to payload XML", ".tocket/last-payload.xml")
77
+ .option("--json", "Output as JSON instead of formatted terminal")
78
+ .option("--since <ref>", "Git ref to diff against (default: HEAD)")
79
+ .action((payloadPath, options) => {
80
+ const cwd = process.cwd();
81
+ const fullPayloadPath = join(cwd, payloadPath);
82
+ if (!existsSync(fullPayloadPath)) {
83
+ console.error(themeError(`Payload not found at ${payloadPath}.`) +
84
+ "\n" +
85
+ dim(" Run 'tocket generate' first, or provide a path: tocket diff <path>"));
86
+ process.exitCode = 1;
87
+ return;
88
+ }
89
+ if (!isGitRepo(cwd)) {
90
+ console.error(themeError("Not a git repository. tocket diff requires git."));
91
+ process.exitCode = 1;
92
+ return;
93
+ }
94
+ const xml = readFileSync(fullPayloadPath, "utf-8");
95
+ const payload = parsePayloadXml(xml);
96
+ const actualFiles = getDiffFiles(options.since, cwd);
97
+ const report = buildDiffReport(payload, actualFiles);
98
+ if (options.json) {
99
+ console.log(JSON.stringify(report, null, 2));
100
+ }
101
+ else {
102
+ console.log(formatDiffReport(report));
103
+ }
104
+ });
105
+ }
106
+ //# sourceMappingURL=diff.cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.cmd.js","sourceRoot":"","sources":["../../src/commands/diff.cmd.ts"],"names":[],"mappings":"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"}
@@ -158,6 +158,30 @@ export function registerDoctorCommand(program) {
158
158
  results.push(stale);
159
159
  // 4. Git tracking
160
160
  results.push(...checkGitTracking(cwd));
161
+ // 5. Last payload check
162
+ const lastPayloadPath = join(cwd, ".tocket", "last-payload.xml");
163
+ if (existsSync(lastPayloadPath)) {
164
+ const payloadStats = statSync(lastPayloadPath);
165
+ const daysSince = Math.floor((Date.now() - payloadStats.mtimeMs) / (1000 * 60 * 60 * 24));
166
+ if (daysSince > STALENESS_THRESHOLD_DAYS) {
167
+ results.push({
168
+ icon: WARN,
169
+ message: `Last payload is ${daysSince} days old`,
170
+ });
171
+ }
172
+ else {
173
+ results.push({
174
+ icon: PASS,
175
+ message: "Last payload found (.tocket/last-payload.xml)",
176
+ });
177
+ }
178
+ }
179
+ else {
180
+ results.push({
181
+ icon: WARN,
182
+ message: "No last payload found — run tocket generate",
183
+ });
184
+ }
161
185
  // Print results
162
186
  for (const r of results) {
163
187
  console.log(` ${r.icon} ${r.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.cmd.js","sourceRoot":"","sources":["../../src/commands/doctor.cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.cmd.js","sourceRoot":"","sources":["../../src/commands/doctor.cmd.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,IAAI,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC9G,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AAO3B,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,4CAA4C;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kDAAkD,EAAE,CAAC,CAAC;QAC5F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC/D,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvE,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iDAAiD,EAAE,CAAC,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC9C,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAClC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9C,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,uBAAuB,EAAE,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,+BAA+B,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,sCAAsC;IACtC,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC,CAAC;IAC1F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,0CAA0C;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,kCAAkC,EAAE;YAC1D,GAAG;YACH,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,qCAAqC,EAAE,CAAC,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mBAAmB;IACrB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAClC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CACrD,CAAC;IAEF,IAAI,iBAAiB,GAAG,wBAAwB,EAAE,CAAC;QACjD,OAAO;YACL,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,kCAAkC,iBAAiB,0BAA0B;SACvF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,GAAG,EAAE;QACX,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE1C,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAEnE,MAAM,aAAa,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC;YAE7E,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;YAED,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;gBAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/D,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,qBAAqB,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,oBAAoB;QACpB,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzC,eAAe;QACf,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE/B,kBAAkB;QAClB,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QAEvC,wBAAwB;QACxB,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACjE,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAC1B,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAC5D,CAAC;YACF,IAAI,SAAS,GAAG,wBAAwB,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,mBAAmB,SAAS,WAAW;iBACjD,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,IAAI;oBACV,OAAO,EAAE,+CAA+C;iBACzD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,IAAI;gBACV,OAAO,EACL,6CAA6C;aAChD,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;gBAAE,SAAS,EAAE,CAAC;iBAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;gBAAE,SAAS,EAAE,CAAC;;gBACjC,SAAS,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,YAAY,SAAS,cAAc,SAAS,WAAW,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,6CAA6C,CAAC,CAAC;YAChG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { input, select, confirm } from "@inquirer/prompts";
2
- import { writeFileSync } from "node:fs";
2
+ import { mkdirSync, writeFileSync } from "node:fs";
3
+ import { join } from "node:path";
3
4
  import { success, heading, dim, banner } from "../utils/theme.js";
4
5
  import { getConfig } from "../utils/config.js";
5
6
  import { getStagedFiles, getModifiedFiles, getLastCommitMessage } from "../utils/git.js";
@@ -92,6 +93,11 @@ export function registerGenerateCommand(program) {
92
93
  });
93
94
  }
94
95
  const xml = buildPayloadXml(tasks);
96
+ // Persist payload for `tocket diff`
97
+ const tocketDir = join(process.cwd(), ".tocket");
98
+ mkdirSync(tocketDir, { recursive: true });
99
+ writeFileSync(join(tocketDir, "last-payload.xml"), xml, "utf-8");
100
+ console.log(dim(" Payload saved to .tocket/last-payload.xml"));
95
101
  // Preview
96
102
  if (options.preview !== false) {
97
103
  console.log(dim("\n--- Payload Preview ---"));
@@ -1 +1 @@
1
- {"version":3,"file":"generate.cmd.js","sourceRoot":"","sources":["../../src/commands/generate.cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.cmd.js","sourceRoot":"","sources":["../../src/commands/generate.cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Command } from "commander";
2
+ export interface HandoffData {
3
+ focus: string;
4
+ branch: string;
5
+ recentCommits: string[];
6
+ modifiedFiles: string[];
7
+ openDecisions: string;
8
+ projectName: string;
9
+ }
10
+ /** Extract the "## Open Decisions" section body from activeContext.md. */
11
+ export declare function extractOpenDecisions(content: string): string;
12
+ /** Build a condensed markdown summary for pasting into a new agent conversation. */
13
+ export declare function buildHandoffMarkdown(data: HandoffData): string;
14
+ export declare function registerHandoffCommand(program: Command): void;
@@ -0,0 +1,131 @@
1
+ import { existsSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { success, error as themeError, dim } from "../utils/theme.js";
4
+ import { getRecentCommits, getCurrentBranch, getRecentlyModifiedFiles, isGitRepo, } from "../utils/git.js";
5
+ import { extractFocus } from "../utils/context.js";
6
+ /** Extract the "## Open Decisions" section body from activeContext.md. */
7
+ export function extractOpenDecisions(content) {
8
+ const match = content.match(/## Open Decisions\s*\n+([\s\S]*?)(?=\n## |\n*$)/);
9
+ const body = match?.[1]?.trim() ?? "";
10
+ if (!body || body.startsWith("_") || body.includes("No open decisions"))
11
+ return "";
12
+ return body;
13
+ }
14
+ /** Extract project name from the first heading of activeContext.md. */
15
+ function extractProjectName(content) {
16
+ const match = content.match(/^# (.+)/m);
17
+ if (!match?.[1])
18
+ return "Project";
19
+ return (match[1]
20
+ .replace("Active Context", "")
21
+ .replace(/\s*[-—]\s*/, "")
22
+ .trim() || "Project");
23
+ }
24
+ /** Parse a duration string like "2h", "30m", "1d" into minutes. */
25
+ function parseSinceDuration(since) {
26
+ const match = since.match(/^(\d+)(h|m|d)$/);
27
+ if (!match)
28
+ return 120;
29
+ const value = parseInt(match[1], 10);
30
+ switch (match[2]) {
31
+ case "h":
32
+ return value * 60;
33
+ case "m":
34
+ return value;
35
+ case "d":
36
+ return value * 60 * 24;
37
+ default:
38
+ return 120;
39
+ }
40
+ }
41
+ /** Build a condensed markdown summary for pasting into a new agent conversation. */
42
+ export function buildHandoffMarkdown(data) {
43
+ const lines = [];
44
+ lines.push(`## Session Handoff — ${data.projectName}`);
45
+ if (data.focus) {
46
+ lines.push(`**Focus:** ${data.focus}`);
47
+ }
48
+ if (data.branch) {
49
+ lines.push(`**Branch:** ${data.branch}`);
50
+ }
51
+ lines.push("");
52
+ if (data.recentCommits.length > 0) {
53
+ lines.push(`### Recent Changes (last ${data.recentCommits.length} commits)`);
54
+ for (const c of data.recentCommits) {
55
+ lines.push(`- ${c}`);
56
+ }
57
+ lines.push("");
58
+ }
59
+ if (data.modifiedFiles.length > 0) {
60
+ lines.push("### Modified Files (since last sync)");
61
+ for (const f of data.modifiedFiles) {
62
+ lines.push(`- ${f}`);
63
+ }
64
+ lines.push("");
65
+ }
66
+ if (data.openDecisions) {
67
+ lines.push("### Open Decisions");
68
+ lines.push(data.openDecisions);
69
+ lines.push("");
70
+ }
71
+ return lines.join("\n");
72
+ }
73
+ export function registerHandoffCommand(program) {
74
+ program
75
+ .command("handoff")
76
+ .description("Generate a clipboard-ready context summary for a new agent conversation")
77
+ .option("--to <target>", "Output target: clipboard (default), stdout, or file path")
78
+ .option("--commits <n>", "Number of recent commits to include", "5")
79
+ .option("--since <duration>", "Time window for modified files (e.g., 2h, 30m, 1d)", "2h")
80
+ .action(async (options) => {
81
+ const cwd = process.cwd();
82
+ const contextDir = join(cwd, ".context");
83
+ if (!existsSync(contextDir)) {
84
+ console.error(themeError("No .context/ directory found. Run 'tocket init' first."));
85
+ process.exitCode = 1;
86
+ return;
87
+ }
88
+ // Read activeContext.md
89
+ const activeContextPath = join(contextDir, "activeContext.md");
90
+ let focus = "";
91
+ let openDecisions = "";
92
+ let projectName = "Project";
93
+ if (existsSync(activeContextPath)) {
94
+ const content = readFileSync(activeContextPath, "utf-8");
95
+ focus = extractFocus(content);
96
+ openDecisions = extractOpenDecisions(content);
97
+ projectName = extractProjectName(content);
98
+ }
99
+ const commitCount = parseInt(options.commits ?? "5", 10);
100
+ const sinceMinutes = parseSinceDuration(options.since ?? "2h");
101
+ const branch = isGitRepo(cwd) ? getCurrentBranch(cwd) : "";
102
+ const recentCommits = getRecentCommits(commitCount, cwd);
103
+ const modifiedFiles = getRecentlyModifiedFiles(sinceMinutes, cwd);
104
+ const data = {
105
+ focus,
106
+ branch,
107
+ recentCommits,
108
+ modifiedFiles,
109
+ openDecisions,
110
+ projectName,
111
+ };
112
+ const markdown = buildHandoffMarkdown(data);
113
+ const target = options.to ?? "clipboard";
114
+ if (target === "stdout") {
115
+ console.log(markdown);
116
+ }
117
+ else if (target === "clipboard") {
118
+ const { default: clipboard } = await import("clipboardy");
119
+ clipboard.writeSync(markdown);
120
+ console.log("\n" +
121
+ success("Handoff summary copied to clipboard!") +
122
+ "\n" +
123
+ dim(" Paste it into your next agent conversation.\n"));
124
+ }
125
+ else {
126
+ writeFileSync(target, markdown, "utf-8");
127
+ console.log("\n" + success(`Handoff summary written to ${target}!`) + "\n");
128
+ }
129
+ });
130
+ }
131
+ //# sourceMappingURL=handoff.cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff.cmd.js","sourceRoot":"","sources":["../../src/commands/handoff.cmd.ts"],"names":[],"mappings":"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"}