@mmnto/cli 0.5.0 → 0.7.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 (90) hide show
  1. package/dist/adapters/gh-utils.d.ts +12 -0
  2. package/dist/adapters/gh-utils.d.ts.map +1 -0
  3. package/dist/adapters/gh-utils.js +53 -0
  4. package/dist/adapters/gh-utils.js.map +1 -0
  5. package/dist/adapters/gh-utils.test.d.ts +2 -0
  6. package/dist/adapters/gh-utils.test.d.ts.map +1 -0
  7. package/dist/adapters/gh-utils.test.js +81 -0
  8. package/dist/adapters/gh-utils.test.js.map +1 -0
  9. package/dist/adapters/github-cli-pr.d.ts +10 -0
  10. package/dist/adapters/github-cli-pr.d.ts.map +1 -0
  11. package/dist/adapters/github-cli-pr.js +83 -0
  12. package/dist/adapters/github-cli-pr.js.map +1 -0
  13. package/dist/adapters/github-cli-pr.test.d.ts +2 -0
  14. package/dist/adapters/github-cli-pr.test.d.ts.map +1 -0
  15. package/dist/adapters/github-cli-pr.test.js +108 -0
  16. package/dist/adapters/github-cli-pr.test.js.map +1 -0
  17. package/dist/adapters/github-cli.d.ts +8 -0
  18. package/dist/adapters/github-cli.d.ts.map +1 -0
  19. package/dist/adapters/github-cli.js +53 -0
  20. package/dist/adapters/github-cli.js.map +1 -0
  21. package/dist/adapters/github-cli.test.d.ts +2 -0
  22. package/dist/adapters/github-cli.test.d.ts.map +1 -0
  23. package/dist/adapters/github-cli.test.js +87 -0
  24. package/dist/adapters/github-cli.test.js.map +1 -0
  25. package/dist/adapters/issue-adapter.d.ts +22 -0
  26. package/dist/adapters/issue-adapter.d.ts.map +1 -0
  27. package/dist/adapters/issue-adapter.js +6 -0
  28. package/dist/adapters/issue-adapter.js.map +1 -0
  29. package/dist/adapters/pr-adapter.d.ts +41 -0
  30. package/dist/adapters/pr-adapter.d.ts.map +1 -0
  31. package/dist/adapters/pr-adapter.js +6 -0
  32. package/dist/adapters/pr-adapter.js.map +1 -0
  33. package/dist/commands/briefing.d.ts +3 -1
  34. package/dist/commands/briefing.d.ts.map +1 -1
  35. package/dist/commands/briefing.js +5 -27
  36. package/dist/commands/briefing.js.map +1 -1
  37. package/dist/commands/briefing.test.d.ts +2 -0
  38. package/dist/commands/briefing.test.d.ts.map +1 -0
  39. package/dist/commands/briefing.test.js +26 -0
  40. package/dist/commands/briefing.test.js.map +1 -0
  41. package/dist/commands/handoff.d.ts +2 -1
  42. package/dist/commands/handoff.d.ts.map +1 -1
  43. package/dist/commands/handoff.js +1 -1
  44. package/dist/commands/handoff.js.map +1 -1
  45. package/dist/commands/handoff.test.d.ts +2 -0
  46. package/dist/commands/handoff.test.d.ts.map +1 -0
  47. package/dist/commands/handoff.test.js +35 -0
  48. package/dist/commands/handoff.test.js.map +1 -0
  49. package/dist/commands/init.d.ts.map +1 -1
  50. package/dist/commands/init.js +67 -50
  51. package/dist/commands/init.js.map +1 -1
  52. package/dist/commands/learn.d.ts +1 -1
  53. package/dist/commands/learn.d.ts.map +1 -1
  54. package/dist/commands/learn.js +12 -86
  55. package/dist/commands/learn.js.map +1 -1
  56. package/dist/commands/learn.test.d.ts +2 -0
  57. package/dist/commands/learn.test.d.ts.map +1 -0
  58. package/dist/commands/learn.test.js +111 -0
  59. package/dist/commands/learn.test.js.map +1 -0
  60. package/dist/commands/shield.d.ts +1 -1
  61. package/dist/commands/shield.d.ts.map +1 -1
  62. package/dist/commands/shield.js +6 -5
  63. package/dist/commands/shield.js.map +1 -1
  64. package/dist/commands/shield.test.js +4 -0
  65. package/dist/commands/shield.test.js.map +1 -1
  66. package/dist/commands/spec.d.ts +1 -1
  67. package/dist/commands/spec.d.ts.map +1 -1
  68. package/dist/commands/spec.js +16 -34
  69. package/dist/commands/spec.js.map +1 -1
  70. package/dist/commands/triage.d.ts +3 -1
  71. package/dist/commands/triage.d.ts.map +1 -1
  72. package/dist/commands/triage.js +7 -39
  73. package/dist/commands/triage.js.map +1 -1
  74. package/dist/commands/triage.test.d.ts +2 -0
  75. package/dist/commands/triage.test.d.ts.map +1 -0
  76. package/dist/commands/triage.test.js +33 -0
  77. package/dist/commands/triage.test.js.map +1 -0
  78. package/dist/index.js +6 -5
  79. package/dist/index.js.map +1 -1
  80. package/dist/orchestrator.test.d.ts +2 -0
  81. package/dist/orchestrator.test.d.ts.map +1 -0
  82. package/dist/orchestrator.test.js +90 -0
  83. package/dist/orchestrator.test.js.map +1 -0
  84. package/dist/utils.d.ts +11 -1
  85. package/dist/utils.d.ts.map +1 -1
  86. package/dist/utils.js +2 -2
  87. package/dist/utils.js.map +1 -1
  88. package/dist/utils.test.js +208 -2
  89. package/dist/utils.test.js.map +1 -1
  90. package/package.json +2 -2
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Generic PR adapter interface — decouples Totem commands from any
3
+ * specific code hosting platform (GitHub, GitLab, etc.).
4
+ */
5
+ export interface StandardPrListItem {
6
+ number: number;
7
+ title: string;
8
+ headRefName: string;
9
+ }
10
+ export interface StandardPrComment {
11
+ author: string;
12
+ body: string;
13
+ }
14
+ export interface StandardPrReview {
15
+ author: string;
16
+ state: string;
17
+ body: string;
18
+ }
19
+ export interface StandardPr {
20
+ number: number;
21
+ title: string;
22
+ body: string;
23
+ state: string;
24
+ comments: StandardPrComment[];
25
+ reviews: StandardPrReview[];
26
+ }
27
+ export interface StandardReviewComment {
28
+ id: number;
29
+ author: string;
30
+ body: string;
31
+ path: string;
32
+ diffHunk: string;
33
+ inReplyToId?: number;
34
+ createdAt?: string;
35
+ }
36
+ export interface PrAdapter {
37
+ fetchOpenPRs(): StandardPrListItem[];
38
+ fetchPr(prNumber: number): StandardPr;
39
+ fetchReviewComments(prNumber: number): StandardReviewComment[];
40
+ }
41
+ //# sourceMappingURL=pr-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/pr-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,IAAI,kBAAkB,EAAE,CAAC;IACrC,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC;IACtC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;CAChE"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generic PR adapter interface — decouples Totem commands from any
3
+ * specific code hosting platform (GitHub, GitLab, etc.).
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=pr-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-adapter.js","sourceRoot":"","sources":["../../src/adapters/pr-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,8 +1,10 @@
1
+ import type { StandardPrListItem } from '../adapters/pr-adapter.js';
2
+ export declare function formatPRList(prs: StandardPrListItem[]): string;
1
3
  export interface BriefingOptions {
2
4
  raw?: boolean;
3
5
  out?: string;
4
6
  model?: string;
5
- noCache?: boolean;
7
+ fresh?: boolean;
6
8
  }
7
9
  export declare function briefingCommand(options: BriefingOptions): Promise<void>;
8
10
  //# sourceMappingURL=briefing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"briefing.d.ts","sourceRoot":"","sources":["../../src/commands/briefing.ts"],"names":[],"mappings":"AAwJA,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC7E"}
1
+ {"version":3,"file":"briefing.d.ts","sourceRoot":"","sources":["../../src/commands/briefing.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAyEpE,wBAAgB,YAAY,CAAC,GAAG,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAG9D;AAoCD,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC7E"}
@@ -1,9 +1,8 @@
1
- import { execFileSync } from 'node:child_process';
2
1
  import * as path from 'node:path';
3
- import { z } from 'zod';
4
2
  import { createEmbedder, LanceStore } from '@mmnto/totem';
3
+ import { GitHubCliPrAdapter } from '../adapters/github-cli-pr.js';
5
4
  import { getGitBranch, getGitStatus } from '../git.js';
6
- import { formatResults, GH_TIMEOUT_MS, IS_WIN, loadConfig, loadEnv, resolveConfigPath, runOrchestrator, wrapXml, writeOutput, } from '../utils.js';
5
+ import { formatResults, loadConfig, loadEnv, resolveConfigPath, runOrchestrator, wrapXml, writeOutput, } from '../utils.js';
7
6
  // ─── Constants ──────────────────────────────────────────
8
7
  const TAG = 'Briefing';
9
8
  const MAX_SPEC_RESULTS = 5;
@@ -40,28 +39,6 @@ Respond with ONLY the sections below. No preamble, no closing remarks.
40
39
  ### Recommended First Action
41
40
  [Single clear recommendation for what the developer should do first in this session. Consider: uncommitted work to commit/continue, PRs to review/merge, next issue to pick up.]
42
41
  `;
43
- // ─── GitHub helpers ─────────────────────────────────────
44
- const GhPrListItemSchema = z.object({
45
- number: z.number(),
46
- title: z.string(),
47
- headRefName: z.string(),
48
- });
49
- function fetchOpenPRs(cwd) {
50
- try {
51
- const result = execFileSync('gh', ['pr', 'list', '--state', 'open', '--json', 'number,title,headRefName'], { cwd, encoding: 'utf-8', timeout: GH_TIMEOUT_MS, shell: IS_WIN });
52
- return z.array(GhPrListItemSchema).parse(JSON.parse(result));
53
- }
54
- catch (err) {
55
- if (err instanceof z.ZodError) {
56
- throw new Error(`[Totem Error] Failed to parse GitHub PR list response: ${err.message}`);
57
- }
58
- const msg = err instanceof Error ? err.message : String(err);
59
- if (msg.includes('ENOENT') || msg.includes('not found')) {
60
- throw new Error(`[Totem Error] GitHub CLI (gh) is required for PR fetching. Install: https://cli.github.com`);
61
- }
62
- throw new Error(`[Totem Error] Failed to fetch open PRs: ${msg}`);
63
- }
64
- }
65
42
  async function retrieveContext(query, store) {
66
43
  const search = (typeFilter, maxResults) => store.search({ query, typeFilter, maxResults });
67
44
  const [specs, sessions] = await Promise.all([
@@ -71,7 +48,7 @@ async function retrieveContext(query, store) {
71
48
  return { specs, sessions };
72
49
  }
73
50
  // ─── Prompt assembly ────────────────────────────────────
74
- function formatPRList(prs) {
51
+ export function formatPRList(prs) {
75
52
  if (prs.length === 0)
76
53
  return '(none)';
77
54
  return prs.map((pr) => `- #${pr.number} — ${pr.title} (branch: ${pr.headRefName})`).join('\n');
@@ -109,7 +86,8 @@ export async function briefingCommand(options) {
109
86
  console.error(`[${TAG}] Branch: ${branch}`);
110
87
  // Fetch open PRs
111
88
  console.error(`[${TAG}] Fetching open PRs...`);
112
- const prs = fetchOpenPRs(cwd);
89
+ const adapter = new GitHubCliPrAdapter(cwd);
90
+ const prs = adapter.fetchOpenPRs();
113
91
  console.error(`[${TAG}] Found ${prs.length} open PRs.`);
114
92
  // Connect to LanceDB
115
93
  const embedder = createEmbedder(config.embedding);
@@ -1 +1 @@
1
- {"version":3,"file":"briefing.js","sourceRoot":"","sources":["../../src/commands/briefing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"briefing.js","sourceRoot":"","sources":["../../src/commands/briefing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=briefing.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"briefing.test.d.ts","sourceRoot":"","sources":["../../src/commands/briefing.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { formatPRList } from './briefing.js';
3
+ describe('formatPRList', () => {
4
+ it('returns (none) for empty PR list', () => {
5
+ expect(formatPRList([])).toBe('(none)');
6
+ });
7
+ it('formats a single PR with number, title, and branch', () => {
8
+ const prs = [
9
+ { number: 42, title: 'Add widget', headRefName: 'feat/widget' },
10
+ ];
11
+ const output = formatPRList(prs);
12
+ expect(output).toBe('- #42 — Add widget (branch: feat/widget)');
13
+ });
14
+ it('formats multiple PRs as a bulleted list', () => {
15
+ const prs = [
16
+ { number: 1, title: 'First', headRefName: 'feat/first' },
17
+ { number: 2, title: 'Second', headRefName: 'feat/second' },
18
+ ];
19
+ const output = formatPRList(prs);
20
+ const lines = output.split('\n');
21
+ expect(lines).toHaveLength(2);
22
+ expect(lines[0]).toContain('#1');
23
+ expect(lines[1]).toContain('#2');
24
+ });
25
+ });
26
+ //# sourceMappingURL=briefing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"briefing.test.js","sourceRoot":"","sources":["../../src/commands/briefing.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,GAAG,GAAyB;YAChC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE;SAChE,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,GAAG,GAAyB;YAChC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE;YACxD,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE;SAC3D,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,8 +1,9 @@
1
+ export declare function readRecentLessons(cwd: string, totemDir: string): string;
1
2
  export interface HandoffOptions {
2
3
  raw?: boolean;
3
4
  out?: string;
4
5
  model?: string;
5
- noCache?: boolean;
6
+ fresh?: boolean;
6
7
  }
7
8
  export declare function handoffCommand(options: HandoffOptions): Promise<void>;
8
9
  //# sourceMappingURL=handoff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"AAoHA,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC3E"}
1
+ {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"AA0DA,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUvE;AAgDD,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuC3E"}
@@ -42,7 +42,7 @@ Respond with ONLY the sections below. No preamble, no closing remarks.
42
42
  [Clear, ordered list of what the next session should do first. Be specific — not "continue working" but "finish implementing X in file Y, then run tests."]
43
43
  `;
44
44
  // ─── Lessons file reader ────────────────────────────────
45
- function readRecentLessons(cwd, totemDir) {
45
+ export function readRecentLessons(cwd, totemDir) {
46
46
  const lessonsPath = path.join(cwd, totemDir, 'lessons.md');
47
47
  if (!fs.existsSync(lessonsPath))
48
48
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/commands/handoff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=handoff.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff.test.d.ts","sourceRoot":"","sources":["../../src/commands/handoff.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import * as fs from 'node:fs';
2
+ import * as os from 'node:os';
3
+ import * as path from 'node:path';
4
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
+ import { readRecentLessons } from './handoff.js';
6
+ describe('readRecentLessons', () => {
7
+ let tmpDir;
8
+ const totemDir = '.totem';
9
+ beforeEach(() => {
10
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'totem-handoff-'));
11
+ });
12
+ afterEach(() => {
13
+ fs.rmSync(tmpDir, { recursive: true, force: true });
14
+ });
15
+ it('returns empty string when lessons.md does not exist', () => {
16
+ expect(readRecentLessons(tmpDir, totemDir)).toBe('');
17
+ });
18
+ it('returns full content when file is short', () => {
19
+ const lessonsDir = path.join(tmpDir, totemDir);
20
+ fs.mkdirSync(lessonsDir, { recursive: true });
21
+ fs.writeFileSync(path.join(lessonsDir, 'lessons.md'), '## Lesson\nSome content', 'utf-8');
22
+ expect(readRecentLessons(tmpDir, totemDir)).toBe('## Lesson\nSome content');
23
+ });
24
+ it('returns only the last 100 lines for long files', () => {
25
+ const lessonsDir = path.join(tmpDir, totemDir);
26
+ fs.mkdirSync(lessonsDir, { recursive: true });
27
+ const lines = Array.from({ length: 200 }, (_, i) => `Line ${i + 1}`);
28
+ fs.writeFileSync(path.join(lessonsDir, 'lessons.md'), lines.join('\n'), 'utf-8');
29
+ const result = readRecentLessons(tmpDir, totemDir);
30
+ expect(result).toContain('Line 200');
31
+ expect(result).toContain('Line 101');
32
+ expect(result).not.toContain('Line 100\n');
33
+ });
34
+ });
35
+ //# sourceMappingURL=handoff.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handoff.test.js","sourceRoot":"","sources":["../../src/commands/handoff.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,IAAI,MAAc,CAAC;IACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAE1B,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAC;QAC1F,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAEjF,MAAM,MAAM,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAmDA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAInF;AAuCD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC;IAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAoD5D;AAkHD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CA+KjD"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAoDA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAInF;AA0CD,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC;IAAE,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAoD5D;AAmID,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAgLjD"}
@@ -37,16 +37,19 @@ const AI_TOOLS = [
37
37
  {
38
38
  name: 'Claude Code',
39
39
  mcpPath: '.mcp.json',
40
+ reflexFile: 'CLAUDE.md',
40
41
  serverEntry: { type: 'stdio', command: npxCmd, args: npxArgs },
41
42
  },
42
43
  {
43
44
  name: 'Gemini CLI',
44
45
  mcpPath: '.gemini/settings.json',
46
+ reflexFile: '.gemini/gemini.md',
45
47
  serverEntry: { command: npxCmd, args: npxArgs },
46
48
  },
47
49
  {
48
50
  name: 'Cursor',
49
51
  mcpPath: '.cursor/mcp.json',
52
+ reflexFile: '.cursorrules',
50
53
  serverEntry: { type: 'stdio', command: npxCmd, args: npxArgs },
51
54
  },
52
55
  ];
@@ -59,7 +62,7 @@ function detectAiTools(cwd) {
59
62
  if (exists('.gemini')) {
60
63
  detected.push(AI_TOOLS.find((t) => t.name === 'Gemini CLI'));
61
64
  }
62
- if (exists('.cursorrules')) {
65
+ if (exists('.cursorrules') || exists('.cursor/mcp.json')) {
63
66
  detected.push(AI_TOOLS.find((t) => t.name === 'Cursor'));
64
67
  }
65
68
  return detected;
@@ -201,12 +204,24 @@ ${embeddingBlock}
201
204
  export default config;
202
205
  `;
203
206
  }
207
+ /** Inject reflex block into an AI context file if not already present. */
208
+ function injectReflexes(filePath) {
209
+ if (!fs.existsSync(filePath))
210
+ return 'missing';
211
+ const content = fs.readFileSync(filePath, 'utf-8');
212
+ if (content.includes('Totem AI Integration') || content.includes('Totem Memory Reflexes')) {
213
+ return 'exists';
214
+ }
215
+ fs.appendFileSync(filePath, AI_PROMPT_BLOCK);
216
+ return 'injected';
217
+ }
204
218
  export async function initCommand() {
205
219
  const cwd = process.cwd();
206
220
  const configPath = path.join(cwd, 'totem.config.ts');
207
221
  const totemDir = path.join(cwd, '.totem');
208
222
  const configExists = fs.existsSync(configPath);
209
223
  const rl = readline.createInterface({ input, output });
224
+ const summary = [];
210
225
  try {
211
226
  if (!configExists) {
212
227
  // --- Fresh install: generate config ---
@@ -234,19 +249,27 @@ export async function initCommand() {
234
249
  const targets = buildTargets(detected);
235
250
  let provider = 'openai';
236
251
  const answer = await rl.question('Enter your OpenAI API key (or press Enter to configure local Ollama later): ');
237
- if (answer.trim()) {
238
- const envPath = path.join(cwd, '.env');
239
- const envLine = `OPENAI_API_KEY=${answer.trim()}\n`;
240
- if (fs.existsSync(envPath)) {
241
- const existing = fs.readFileSync(envPath, 'utf-8');
242
- if (!existing.includes('OPENAI_API_KEY')) {
243
- fs.appendFileSync(envPath, envLine);
244
- }
252
+ const apiKey = answer.trim().replace(/[\r\n]/g, '');
253
+ if (apiKey) {
254
+ if (!/^sk-[a-zA-Z0-9_-]+$/.test(apiKey)) {
255
+ console.error('[Totem] Warning: API key does not look like a valid OpenAI key (expected sk-...). Skipping.');
256
+ provider = 'ollama';
245
257
  }
246
258
  else {
247
- fs.writeFileSync(envPath, envLine);
259
+ const envPath = path.join(cwd, '.env');
260
+ const envLine = `OPENAI_API_KEY="${apiKey}"\n`;
261
+ if (fs.existsSync(envPath)) {
262
+ const existing = fs.readFileSync(envPath, 'utf-8');
263
+ if (!/^\s*OPENAI_API_KEY\s*=/m.test(existing)) {
264
+ const prefix = existing.length > 0 && !existing.endsWith('\n') ? '\n' : '';
265
+ fs.appendFileSync(envPath, prefix + envLine);
266
+ }
267
+ }
268
+ else {
269
+ fs.writeFileSync(envPath, envLine);
270
+ }
271
+ summary.push({ file: '.env', action: 'Saved OpenAI API key' });
248
272
  }
249
- console.log('[Totem] OpenAI API key saved to .env');
250
273
  }
251
274
  else {
252
275
  provider = 'ollama';
@@ -254,7 +277,7 @@ export async function initCommand() {
254
277
  }
255
278
  const configContent = generateConfig(targets, provider);
256
279
  fs.writeFileSync(configPath, configContent, 'utf-8');
257
- console.log('[Totem] Created totem.config.ts');
280
+ summary.push({ file: 'totem.config.ts', action: 'Created with auto-detected targets' });
258
281
  }
259
282
  else {
260
283
  console.log('[Totem] totem.config.ts already exists. Checking reflexes and hooks...');
@@ -266,44 +289,16 @@ export async function initCommand() {
266
289
  const lessonsPath = path.join(totemDir, 'lessons.md');
267
290
  if (!fs.existsSync(lessonsPath)) {
268
291
  fs.writeFileSync(lessonsPath, `# Totem Lessons\n\nLessons learned from PR reviews and Shield checks.\nThis file is version-controlled and reviewed in PR diffs.\n\n---\n`, 'utf-8');
269
- console.log('[Totem] Created .totem/lessons.md');
270
- }
271
- // --- Always run: AI prompt injection ---
272
- const aiFiles = ['CLAUDE.md', '.cursorrules', '.gemini/gemini.md'];
273
- const foundAiFiles = aiFiles.filter((f) => fs.existsSync(path.join(cwd, f)));
274
- if (foundAiFiles.length > 0) {
275
- console.log(`\n[Totem] Detected AI context files: ${foundAiFiles.join(', ')}`);
276
- const injectAnswer = await rl.question('Would you like to inject Totem automated memory reflexes into these files? (y/N): ');
277
- if (injectAnswer.trim().toLowerCase() === 'y' ||
278
- injectAnswer.trim().toLowerCase() === 'yes') {
279
- for (const file of foundAiFiles) {
280
- try {
281
- const filePath = path.join(cwd, file);
282
- const content = fs.readFileSync(filePath, 'utf-8');
283
- if (!content.includes('Totem AI Integration') &&
284
- !content.includes('Totem Memory Reflexes')) {
285
- fs.appendFileSync(filePath, AI_PROMPT_BLOCK);
286
- console.log(`[Totem] Injected reflexes into ${file}`);
287
- }
288
- else {
289
- console.log(`[Totem] ${file} already contains Totem reflexes.`);
290
- }
291
- }
292
- catch (err) {
293
- const message = err instanceof Error ? err.message : String(err);
294
- console.error(`\n[Totem Error] Failed to inject reflexes into ${file}: ${message}`);
295
- }
296
- }
297
- }
292
+ summary.push({ file: '.totem/lessons.md', action: 'Created lessons file' });
298
293
  }
299
- // --- Always run: MCP server registration ---
294
+ // --- Unified AI tool selection ---
300
295
  const detectedTools = detectAiTools(cwd);
301
296
  if (detectedTools.length > 0) {
302
297
  const toolNames = detectedTools.map((t) => t.name).join(', ');
303
298
  console.log(`\n[Totem] Detected AI tools: ${toolNames}`);
304
- const mcpAnswer = await rl.question('Which tools should Totem configure MCP for? [all/none/select] (default: all): ');
299
+ const toolAnswer = await rl.question('Which tools should Totem configure? [all/none/select] (default: all): ');
305
300
  let selectedTools;
306
- const trimmed = mcpAnswer.trim().toLowerCase();
301
+ const trimmed = toolAnswer.trim().toLowerCase();
307
302
  if (trimmed === 'none') {
308
303
  selectedTools = [];
309
304
  }
@@ -320,6 +315,7 @@ export async function initCommand() {
320
315
  // 'all' or Enter (default)
321
316
  selectedTools = detectedTools;
322
317
  }
318
+ // --- MCP scaffolding for selected tools ---
323
319
  for (const tool of selectedTools) {
324
320
  const filePath = path.join(cwd, tool.mcpPath);
325
321
  const result = scaffoldMcpConfig(filePath, tool.serverEntry);
@@ -329,13 +325,26 @@ export async function initCommand() {
329
325
  console.log(` "totem": ${JSON.stringify(tool.serverEntry, null, 2)}\n`);
330
326
  }
331
327
  else if (result.action === 'created') {
332
- console.log(`[Totem] Created ${tool.mcpPath} with Totem MCP server.`);
328
+ summary.push({ file: tool.mcpPath, action: `Created with Totem MCP server` });
333
329
  }
334
330
  else if (result.action === 'merged') {
335
- console.log(`[Totem] Added Totem MCP server to existing ${tool.mcpPath}.`);
331
+ summary.push({ file: tool.mcpPath, action: `Added totem to mcpServers` });
336
332
  }
337
- else {
338
- console.log(`[Totem] ${tool.mcpPath} already has Totem configured.`);
333
+ }
334
+ // --- Reflex injection for selected tools ---
335
+ for (const tool of selectedTools) {
336
+ if (!tool.reflexFile)
337
+ continue;
338
+ const filePath = path.join(cwd, tool.reflexFile);
339
+ try {
340
+ const result = injectReflexes(filePath);
341
+ if (result === 'injected') {
342
+ summary.push({ file: tool.reflexFile, action: 'Injected memory reflexes' });
343
+ }
344
+ }
345
+ catch (err) {
346
+ const message = err instanceof Error ? err.message : String(err);
347
+ console.error(`\n[Totem Error] Failed to inject reflexes into ${tool.reflexFile}: ${message}`);
339
348
  }
340
349
  }
341
350
  }
@@ -347,10 +356,18 @@ export async function initCommand() {
347
356
  const gitignore = fs.readFileSync(gitignorePath, 'utf-8');
348
357
  if (!gitignore.includes('.lancedb')) {
349
358
  fs.appendFileSync(gitignorePath, '\n# Totem\n.lancedb/\n');
350
- console.log('[Totem] Added .lancedb/ to .gitignore');
359
+ summary.push({ file: '.gitignore', action: 'Added .lancedb/ exclusion' });
360
+ }
361
+ }
362
+ // --- Print summary ---
363
+ if (summary.length > 0) {
364
+ console.log('\n--- Totem Init Summary ---');
365
+ for (const entry of summary) {
366
+ console.log(` [OK] ${entry.file} — ${entry.action}`);
351
367
  }
368
+ console.log('--------------------------');
352
369
  }
353
- console.log('[Totem] Init complete. Run `totem sync` to index your project.');
370
+ console.log('\n[Totem] Init complete. Run `totem sync` to index your project.');
354
371
  }
355
372
  finally {
356
373
  rl.close();
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export interface LearnOptions {
8
8
  raw?: boolean;
9
9
  out?: string;
10
10
  model?: string;
11
- noCache?: boolean;
11
+ fresh?: boolean;
12
12
  dryRun?: boolean;
13
13
  }
14
14
  export declare function learnCommand(prNumber: string, options: LearnOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"learn.d.ts","sourceRoot":"","sources":["../../src/commands/learn.ts"],"names":[],"mappings":"AAsRA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAID,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAkBjE;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAenF;AAID,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGzF"}
1
+ {"version":3,"file":"learn.d.ts","sourceRoot":"","sources":["../../src/commands/learn.ts"],"names":[],"mappings":"AAkLA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAID,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAkBjE;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAenF;AAID,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGzF"}