openlore 2.0.0 → 2.0.2

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 (105) hide show
  1. package/README.md +76 -0
  2. package/dist/cli/commands/decisions.d.ts.map +1 -1
  3. package/dist/cli/commands/decisions.js +21 -3
  4. package/dist/cli/commands/decisions.js.map +1 -1
  5. package/dist/cli/commands/mcp.d.ts.map +1 -1
  6. package/dist/cli/commands/mcp.js +56 -5
  7. package/dist/cli/commands/mcp.js.map +1 -1
  8. package/dist/cli/commands/telemetry.d.ts +11 -0
  9. package/dist/cli/commands/telemetry.d.ts.map +1 -0
  10. package/dist/cli/commands/telemetry.js +373 -0
  11. package/dist/cli/commands/telemetry.js.map +1 -0
  12. package/dist/cli/index.js +17 -9
  13. package/dist/cli/index.js.map +1 -1
  14. package/dist/cli/install/adapters/agents-md.d.ts +8 -0
  15. package/dist/cli/install/adapters/agents-md.d.ts.map +1 -0
  16. package/dist/cli/install/adapters/agents-md.js +21 -0
  17. package/dist/cli/install/adapters/agents-md.js.map +1 -0
  18. package/dist/cli/install/adapters/claude-code.d.ts +8 -0
  19. package/dist/cli/install/adapters/claude-code.d.ts.map +1 -0
  20. package/dist/cli/install/adapters/claude-code.js +184 -0
  21. package/dist/cli/install/adapters/claude-code.js.map +1 -0
  22. package/dist/cli/install/adapters/cline.d.ts +6 -0
  23. package/dist/cli/install/adapters/cline.d.ts.map +1 -0
  24. package/dist/cli/install/adapters/cline.js +19 -0
  25. package/dist/cli/install/adapters/cline.js.map +1 -0
  26. package/dist/cli/install/adapters/continue.d.ts +13 -0
  27. package/dist/cli/install/adapters/continue.d.ts.map +1 -0
  28. package/dist/cli/install/adapters/continue.js +119 -0
  29. package/dist/cli/install/adapters/continue.js.map +1 -0
  30. package/dist/cli/install/adapters/cursor.d.ts +8 -0
  31. package/dist/cli/install/adapters/cursor.d.ts.map +1 -0
  32. package/dist/cli/install/adapters/cursor.js +195 -0
  33. package/dist/cli/install/adapters/cursor.js.map +1 -0
  34. package/dist/cli/install/adapters/markdown-block.d.ts +20 -0
  35. package/dist/cli/install/adapters/markdown-block.d.ts.map +1 -0
  36. package/dist/cli/install/adapters/markdown-block.js +114 -0
  37. package/dist/cli/install/adapters/markdown-block.js.map +1 -0
  38. package/dist/cli/install/adapters/types.d.ts +39 -0
  39. package/dist/cli/install/adapters/types.d.ts.map +1 -0
  40. package/dist/cli/install/adapters/types.js +10 -0
  41. package/dist/cli/install/adapters/types.js.map +1 -0
  42. package/dist/cli/install/block.d.ts +53 -0
  43. package/dist/cli/install/block.d.ts.map +1 -0
  44. package/dist/cli/install/block.js +106 -0
  45. package/dist/cli/install/block.js.map +1 -0
  46. package/dist/cli/install/detect.d.ts +23 -0
  47. package/dist/cli/install/detect.d.ts.map +1 -0
  48. package/dist/cli/install/detect.js +115 -0
  49. package/dist/cli/install/detect.js.map +1 -0
  50. package/dist/cli/install/diff.d.ts +12 -0
  51. package/dist/cli/install/diff.d.ts.map +1 -0
  52. package/dist/cli/install/diff.js +51 -0
  53. package/dist/cli/install/diff.js.map +1 -0
  54. package/dist/cli/install/index.d.ts +19 -0
  55. package/dist/cli/install/index.d.ts.map +1 -0
  56. package/dist/cli/install/index.js +133 -0
  57. package/dist/cli/install/index.js.map +1 -0
  58. package/dist/cli/install/json-managed.d.ts +43 -0
  59. package/dist/cli/install/json-managed.d.ts.map +1 -0
  60. package/dist/cli/install/json-managed.js +137 -0
  61. package/dist/cli/install/json-managed.js.map +1 -0
  62. package/dist/cli/install/templates/agent-instructions.md +12 -0
  63. package/dist/cli/install/templates/cursor-openlore.mdc +7 -0
  64. package/dist/cli/preflight/diff.d.ts +42 -0
  65. package/dist/cli/preflight/diff.d.ts.map +1 -0
  66. package/dist/cli/preflight/diff.js +162 -0
  67. package/dist/cli/preflight/diff.js.map +1 -0
  68. package/dist/cli/preflight/index.d.ts +31 -0
  69. package/dist/cli/preflight/index.d.ts.map +1 -0
  70. package/dist/cli/preflight/index.js +126 -0
  71. package/dist/cli/preflight/index.js.map +1 -0
  72. package/dist/cli/preflight/report.d.ts +50 -0
  73. package/dist/cli/preflight/report.d.ts.map +1 -0
  74. package/dist/cli/preflight/report.js +174 -0
  75. package/dist/cli/preflight/report.js.map +1 -0
  76. package/dist/cli/preflight/score.d.ts +43 -0
  77. package/dist/cli/preflight/score.d.ts.map +1 -0
  78. package/dist/cli/preflight/score.js +102 -0
  79. package/dist/cli/preflight/score.js.map +1 -0
  80. package/dist/core/analyzer/file-walker.d.ts.map +1 -1
  81. package/dist/core/analyzer/file-walker.js +20 -13
  82. package/dist/core/analyzer/file-walker.js.map +1 -1
  83. package/dist/core/analyzer/vector-index.d.ts +2 -0
  84. package/dist/core/analyzer/vector-index.d.ts.map +1 -1
  85. package/dist/core/analyzer/vector-index.js +30 -20
  86. package/dist/core/analyzer/vector-index.js.map +1 -1
  87. package/dist/core/services/mcp-handlers/decisions.d.ts.map +1 -1
  88. package/dist/core/services/mcp-handlers/decisions.js +4 -0
  89. package/dist/core/services/mcp-handlers/decisions.js.map +1 -1
  90. package/dist/core/services/mcp-handlers/epistemic-lease.d.ts +67 -0
  91. package/dist/core/services/mcp-handlers/epistemic-lease.d.ts.map +1 -0
  92. package/dist/core/services/mcp-handlers/epistemic-lease.js +431 -0
  93. package/dist/core/services/mcp-handlers/epistemic-lease.js.map +1 -0
  94. package/dist/core/services/mcp-handlers/utils.d.ts +2 -0
  95. package/dist/core/services/mcp-handlers/utils.d.ts.map +1 -1
  96. package/dist/core/services/mcp-handlers/utils.js +21 -2
  97. package/dist/core/services/mcp-handlers/utils.js.map +1 -1
  98. package/dist/core/services/telemetry.d.ts +16 -0
  99. package/dist/core/services/telemetry.d.ts.map +1 -0
  100. package/dist/core/services/telemetry.js +38 -0
  101. package/dist/core/services/telemetry.js.map +1 -0
  102. package/examples/ci/openlore-preflight.gitlab.yml +16 -0
  103. package/examples/ci/openlore-preflight.sh +16 -0
  104. package/examples/ci/openlore-preflight.yml +30 -0
  105. package/package.json +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,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,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,0FAA0F;AAC1F,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,mDAAmD;AACnD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAEhC,eAAe,CAAC;QACd,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;QAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,KAAK;QAC7B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;KAC9D,CAAC,CAAC;IAEH,qEAAqE;IACrE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,GAAG,CAAC;QAC/C,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,8EAA8E;gBAC9E,sCAAsC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CACV,uEAAuE;IACrE,4EAA4E;IAC5E,iEAAiE,CACpE;KACA,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,aAAa,EAAE,8BAA8B,EAAE,KAAK,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,wBAAwB,EAAE,KAAK,CAAC;KACxD,MAAM,CAAC,YAAY,EAAE,kDAAkD,CAAC;KACxE,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,uBAAuB,CAAC;KACzE,MAAM,CACL,kBAAkB,EAClB,0EAA0E,CAC3E;KACA,MAAM,CAAC,YAAY,EAAE,uEAAuE,CAAC;KAC7F,MAAM,CAAC,gBAAgB,EAAE,uDAAuD,EAAE,QAAQ,CAAC;KAC3F,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCH,CACE,CAAC;AAEJ,uBAAuB;AACvB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,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,qBAAqB,CAAC,CAAC;AAC1C,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAErC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * agents-md adapter — universal fallback that writes an AGENTS.md file at
3
+ * the project root. This is the convention OpenAI Codex (and an increasing
4
+ * number of other tools) read, so it's the safest "always do this" target.
5
+ */
6
+ import type { Adapter } from './types.js';
7
+ export declare const agentsMdAdapter: Adapter;
8
+ //# sourceMappingURL=agents-md.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../../../src/cli/install/adapters/agents-md.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AAIxD,eAAO,MAAM,eAAe,EAAE,OAY7B,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * agents-md adapter — universal fallback that writes an AGENTS.md file at
3
+ * the project root. This is the convention OpenAI Codex (and an increasing
4
+ * number of other tools) read, so it's the safest "always do this" target.
5
+ */
6
+ import { applyMarkdownBlock, uninstallMarkdownBlock } from './markdown-block.js';
7
+ const FILE_NAME = 'AGENTS.md';
8
+ export const agentsMdAdapter = {
9
+ name: 'agents-md',
10
+ async apply(ctx) {
11
+ return applyMarkdownBlock(ctx, {
12
+ fileName: FILE_NAME,
13
+ createIfMissing: true,
14
+ blockBody: ctx.instructionTemplate,
15
+ });
16
+ },
17
+ async uninstall(ctx) {
18
+ return uninstallMarkdownBlock(ctx, FILE_NAME, true);
19
+ },
20
+ };
21
+ //# sourceMappingURL=agents-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-md.js","sourceRoot":"","sources":["../../../../src/cli/install/adapters/agents-md.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,MAAM,SAAS,GAAG,WAAW,CAAC;AAE9B,MAAM,CAAC,MAAM,eAAe,GAAY;IACtC,IAAI,EAAE,WAAW;IACjB,KAAK,CAAC,KAAK,CAAC,GAAiB;QAC3B,OAAO,kBAAkB,CAAC,GAAG,EAAE;YAC7B,QAAQ,EAAE,SAAS;YACnB,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,GAAG,CAAC,mBAAmB;SACnC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,GAAiB;QAC/B,OAAO,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * claude-code adapter — appends the OpenLore instruction block to CLAUDE.md
3
+ * (creating it if absent) and adds a SessionStart hook + MCP server
4
+ * registration to `.claude/settings.json`.
5
+ */
6
+ import type { Adapter } from './types.js';
7
+ export declare const claudeCodeAdapter: Adapter;
8
+ //# sourceMappingURL=claude-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../../src/cli/install/adapters/claude-code.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,OAAO,EAA4C,MAAM,YAAY,CAAC;AAiEpF,eAAO,MAAM,iBAAiB,EAAE,OAyH/B,CAAC"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * claude-code adapter — appends the OpenLore instruction block to CLAUDE.md
3
+ * (creating it if absent) and adds a SessionStart hook + MCP server
4
+ * registration to `.claude/settings.json`.
5
+ */
6
+ import { mkdir, readFile, writeFile, unlink } from 'node:fs/promises';
7
+ import { dirname, join } from 'node:path';
8
+ import { applyMarkdownBlock, uninstallMarkdownBlock } from './markdown-block.js';
9
+ import { mergeEntries, readMeta, removeManaged, isHandEdited } from '../json-managed.js';
10
+ import { previewCreate, previewDiff } from '../diff.js';
11
+ const MD_FILE = 'CLAUDE.md';
12
+ const SETTINGS_PATH = '.claude/settings.json';
13
+ const MCP_ENTRY = {
14
+ command: 'npx',
15
+ args: ['--yes', 'openlore', 'mcp'],
16
+ };
17
+ /**
18
+ * Our SessionStart entry is marked with `_openlore: true` so we can identify
19
+ * (and replace, or remove on uninstall) just our group without touching any
20
+ * other SessionStart hooks the user may have configured. Claude Code ignores
21
+ * unknown fields on matcher groups.
22
+ */
23
+ const ORIENT_COMMAND = 'npx --yes openlore orient --json';
24
+ const SESSION_HOOK = {
25
+ matcher: '',
26
+ _openlore: true,
27
+ hooks: [
28
+ {
29
+ type: 'command',
30
+ command: ORIENT_COMMAND,
31
+ },
32
+ ],
33
+ };
34
+ function isOurSessionEntry(entry) {
35
+ if (!entry || typeof entry !== 'object')
36
+ return false;
37
+ return entry._openlore === true;
38
+ }
39
+ function mergeSessionStart(existing) {
40
+ const arr = Array.isArray(existing) ? existing : [];
41
+ const withoutOurs = arr.filter((e) => !isOurSessionEntry(e));
42
+ return [...withoutOurs, SESSION_HOOK];
43
+ }
44
+ function stripOurSessionStart(existing) {
45
+ const arr = Array.isArray(existing) ? existing : [];
46
+ return arr.filter((e) => !isOurSessionEntry(e));
47
+ }
48
+ async function readJsonOrEmpty(path) {
49
+ try {
50
+ const raw = await readFile(path, 'utf8');
51
+ const parsed = JSON.parse(raw);
52
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
53
+ ? parsed
54
+ : {};
55
+ }
56
+ catch {
57
+ return {};
58
+ }
59
+ }
60
+ async function fileExists(path) {
61
+ try {
62
+ await readFile(path);
63
+ return true;
64
+ }
65
+ catch {
66
+ return false;
67
+ }
68
+ }
69
+ export const claudeCodeAdapter = {
70
+ name: 'claude-code',
71
+ async apply(ctx) {
72
+ const mdResult = await applyMarkdownBlock(ctx, {
73
+ fileName: MD_FILE,
74
+ createIfMissing: true,
75
+ blockBody: ctx.instructionTemplate,
76
+ });
77
+ const settingsPath = join(ctx.root, SETTINGS_PATH);
78
+ const existing = await readJsonOrEmpty(settingsPath);
79
+ const had = await fileExists(settingsPath);
80
+ const prevMeta = readMeta(existing);
81
+ if (prevMeta && isHandEdited(existing, prevMeta) && !ctx.force) {
82
+ mdResult.changes.push({
83
+ path: settingsPath,
84
+ kind: 'noop',
85
+ summary: `${SETTINGS_PATH}: refused to overwrite hand-edited OpenLore entries (use --force)`,
86
+ });
87
+ mdResult.warnings.push(`${SETTINGS_PATH} has hand-edits in OpenLore-managed paths — pass --force to overwrite`);
88
+ mdResult.conflict = true;
89
+ return mdResult;
90
+ }
91
+ // SessionStart is computed imperatively (preserving any user-defined
92
+ // entries) and written through mergeEntries, but only mcpServers.openlore
93
+ // is tracked in our meta — we identify our SessionStart entry by its
94
+ // `_openlore: true` marker, not by claiming the whole array.
95
+ const currentSessionStart = existing.hooks?.SessionStart ?? [];
96
+ const nextSessionStart = mergeSessionStart(currentSessionStart);
97
+ const { next, action } = mergeEntries(existing, [
98
+ { path: 'mcpServers.openlore', value: MCP_ENTRY },
99
+ ]);
100
+ // Apply the SessionStart update outside the managed-paths set.
101
+ if (!next.hooks || typeof next.hooks !== 'object')
102
+ next.hooks = {};
103
+ next.hooks.SessionStart = nextSessionStart;
104
+ // Re-derive action: if existing already had identical SessionStart + meta noop, it's noop.
105
+ const sessionChanged = JSON.stringify(currentSessionStart) !== JSON.stringify(nextSessionStart);
106
+ const finalAction = action === 'noop' && !sessionChanged ? 'noop' : action === 'created' ? 'created' : 'updated';
107
+ const before = had ? JSON.stringify(existing, null, 2) + '\n' : '';
108
+ const after = JSON.stringify(next, null, 2) + '\n';
109
+ const change = {
110
+ path: settingsPath,
111
+ kind: !had ? 'create' : finalAction === 'noop' ? 'noop' : 'update',
112
+ summary: !had
113
+ ? `create ${SETTINGS_PATH} with SessionStart hook + mcpServers.openlore`
114
+ : finalAction === 'noop'
115
+ ? `${SETTINGS_PATH}: already up to date`
116
+ : `update SessionStart hook + mcpServers.openlore in ${SETTINGS_PATH}`,
117
+ preview: !had
118
+ ? previewCreate(settingsPath, after)
119
+ : finalAction === 'noop'
120
+ ? undefined
121
+ : previewDiff(settingsPath, before, after),
122
+ };
123
+ if (!ctx.dryRun && (finalAction !== 'noop' || !had)) {
124
+ await mkdir(dirname(settingsPath), { recursive: true });
125
+ await writeFile(settingsPath, JSON.stringify(next, null, 2) + '\n', 'utf8');
126
+ }
127
+ mdResult.changes.push(change);
128
+ return mdResult;
129
+ },
130
+ async uninstall(ctx) {
131
+ const md = await uninstallMarkdownBlock(ctx, MD_FILE, false);
132
+ const settingsPath = join(ctx.root, SETTINGS_PATH);
133
+ let parsed;
134
+ try {
135
+ parsed = JSON.parse(await readFile(settingsPath, 'utf8'));
136
+ }
137
+ catch {
138
+ return md;
139
+ }
140
+ // Strip our SessionStart entry first (it's identified by _openlore marker,
141
+ // not by the managed-paths meta).
142
+ const hooksObj = parsed.hooks;
143
+ if (hooksObj && Array.isArray(hooksObj.SessionStart)) {
144
+ const filtered = stripOurSessionStart(hooksObj.SessionStart);
145
+ if (filtered.length === 0) {
146
+ delete hooksObj.SessionStart;
147
+ if (Object.keys(hooksObj).length === 0)
148
+ delete parsed.hooks;
149
+ }
150
+ else {
151
+ hooksObj.SessionStart = filtered;
152
+ }
153
+ }
154
+ const { next, removed } = removeManaged(parsed);
155
+ if (!removed && parsed.hooks === undefined) {
156
+ // We may have only stripped a SessionStart entry — that still counts as work.
157
+ }
158
+ else if (!removed) {
159
+ return md;
160
+ }
161
+ // If file is now empty (only had our entries), delete it.
162
+ const isEmpty = Object.keys(next).length === 0;
163
+ if (isEmpty) {
164
+ if (!ctx.dryRun)
165
+ await unlink(settingsPath);
166
+ md.changes.push({
167
+ path: settingsPath,
168
+ kind: 'delete',
169
+ summary: `remove ${SETTINGS_PATH} (was OpenLore-only)`,
170
+ });
171
+ }
172
+ else {
173
+ if (!ctx.dryRun)
174
+ await writeFile(settingsPath, JSON.stringify(next, null, 2) + '\n', 'utf8');
175
+ md.changes.push({
176
+ path: settingsPath,
177
+ kind: 'update',
178
+ summary: `strip OpenLore entries from ${SETTINGS_PATH}`,
179
+ });
180
+ }
181
+ return md;
182
+ },
183
+ };
184
+ //# sourceMappingURL=claude-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../../src/cli/install/adapters/claude-code.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * cline adapter — appends the OpenLore instruction block to `.clinerules`.
3
+ */
4
+ import type { Adapter } from './types.js';
5
+ export declare const clineAdapter: Adapter;
6
+ //# sourceMappingURL=cline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.d.ts","sourceRoot":"","sources":["../../../../src/cli/install/adapters/cline.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,YAAY,CAAC;AAIxD,eAAO,MAAM,YAAY,EAAE,OAY1B,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * cline adapter — appends the OpenLore instruction block to `.clinerules`.
3
+ */
4
+ import { applyMarkdownBlock, uninstallMarkdownBlock } from './markdown-block.js';
5
+ const FILE_NAME = '.clinerules';
6
+ export const clineAdapter = {
7
+ name: 'cline',
8
+ async apply(ctx) {
9
+ return applyMarkdownBlock(ctx, {
10
+ fileName: FILE_NAME,
11
+ createIfMissing: true,
12
+ blockBody: ctx.instructionTemplate,
13
+ });
14
+ },
15
+ async uninstall(ctx) {
16
+ return uninstallMarkdownBlock(ctx, FILE_NAME, true);
17
+ },
18
+ };
19
+ //# sourceMappingURL=cline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cline.js","sourceRoot":"","sources":["../../../../src/cli/install/adapters/cline.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGjF,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC,MAAM,CAAC,MAAM,YAAY,GAAY;IACnC,IAAI,EAAE,OAAO;IACb,KAAK,CAAC,KAAK,CAAC,GAAiB;QAC3B,OAAO,kBAAkB,CAAC,GAAG,EAAE;YAC7B,QAAQ,EAAE,SAAS;YACnB,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,GAAG,CAAC,mBAAmB;SACnC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,GAAiB;QAC/B,OAAO,sBAAsB,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;CACF,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * continue adapter — adds an "/orient" slash command entry to
3
+ * `.continue/config.json`. The Continue config schema accepts a top-level
4
+ * `slashCommands` array; we add (or replace) an entry whose `name === 'orient'`.
5
+ *
6
+ * Continue's MCP integration path differs across recent versions; rather than
7
+ * guess and silently write to the wrong key, we leave a TODO and warn the user
8
+ * (per spec-01 "do not guess" rule). MCP server registration for Continue is
9
+ * gated behind a follow-up TODO.
10
+ */
11
+ import type { Adapter } from './types.js';
12
+ export declare const continueAdapter: Adapter;
13
+ //# sourceMappingURL=continue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue.d.ts","sourceRoot":"","sources":["../../../../src/cli/install/adapters/continue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,OAAO,EAA4C,MAAM,YAAY,CAAC;AAUpF,eAAO,MAAM,eAAe,EAAE,OAyG7B,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * continue adapter — adds an "/orient" slash command entry to
3
+ * `.continue/config.json`. The Continue config schema accepts a top-level
4
+ * `slashCommands` array; we add (or replace) an entry whose `name === 'orient'`.
5
+ *
6
+ * Continue's MCP integration path differs across recent versions; rather than
7
+ * guess and silently write to the wrong key, we leave a TODO and warn the user
8
+ * (per spec-01 "do not guess" rule). MCP server registration for Continue is
9
+ * gated behind a follow-up TODO.
10
+ */
11
+ import { mkdir, readFile, writeFile, unlink } from 'node:fs/promises';
12
+ import { dirname, join } from 'node:path';
13
+ import { mergeEntries, readMeta, removeManaged, isHandEdited } from '../json-managed.js';
14
+ import { previewCreate, previewDiff } from '../diff.js';
15
+ const CONFIG_PATH = '.continue/config.json';
16
+ const SLASH_COMMAND = {
17
+ name: 'orient',
18
+ description: 'Call openlore orient() for the current task context',
19
+ run: 'npx --yes openlore orient --json',
20
+ };
21
+ export const continueAdapter = {
22
+ name: 'continue',
23
+ async apply(ctx) {
24
+ const configPath = join(ctx.root, CONFIG_PATH);
25
+ let had = true;
26
+ let existing;
27
+ try {
28
+ existing = JSON.parse(await readFile(configPath, 'utf8'));
29
+ }
30
+ catch {
31
+ existing = {};
32
+ had = false;
33
+ }
34
+ const prevMeta = readMeta(existing);
35
+ if (prevMeta && isHandEdited(existing, prevMeta) && !ctx.force) {
36
+ return {
37
+ changes: [
38
+ {
39
+ path: configPath,
40
+ kind: 'noop',
41
+ summary: `${CONFIG_PATH}: refused to overwrite hand-edited OpenLore entries (use --force)`,
42
+ },
43
+ ],
44
+ warnings: [`${CONFIG_PATH} has hand-edits in OpenLore-managed paths — pass --force to overwrite`],
45
+ conflict: true,
46
+ };
47
+ }
48
+ // Preserve any non-OpenLore slashCommands already present.
49
+ const existingSlash = Array.isArray(existing.slashCommands) ? existing.slashCommands : [];
50
+ const otherSlash = existingSlash.filter((c) => c?.name !== 'orient');
51
+ const nextSlash = [...otherSlash, SLASH_COMMAND];
52
+ const { next, action } = mergeEntries(existing, [
53
+ { path: 'slashCommands', value: nextSlash },
54
+ ]);
55
+ const before = had ? JSON.stringify(existing, null, 2) + '\n' : '';
56
+ const after = JSON.stringify(next, null, 2) + '\n';
57
+ const change = {
58
+ path: configPath,
59
+ kind: !had ? 'create' : action === 'noop' ? 'noop' : 'update',
60
+ summary: !had
61
+ ? `create ${CONFIG_PATH} with /orient slash command`
62
+ : action === 'noop'
63
+ ? `${CONFIG_PATH}: already up to date`
64
+ : `add /orient slash command to ${CONFIG_PATH}`,
65
+ preview: !had
66
+ ? previewCreate(configPath, after)
67
+ : action === 'noop'
68
+ ? undefined
69
+ : previewDiff(configPath, before, after),
70
+ };
71
+ const warnings = [
72
+ // TODO(openlore-spec-01): verify Continue MCP server registration path; not written here.
73
+ 'continue: MCP server registration is not yet wired (path varies by Continue version) — slash command only',
74
+ ];
75
+ if (!ctx.dryRun && (action !== 'noop' || !had)) {
76
+ await mkdir(dirname(configPath), { recursive: true });
77
+ await writeFile(configPath, JSON.stringify(next, null, 2) + '\n', 'utf8');
78
+ }
79
+ return { changes: [change], warnings, conflict: false };
80
+ },
81
+ async uninstall(ctx) {
82
+ const configPath = join(ctx.root, CONFIG_PATH);
83
+ let parsed;
84
+ try {
85
+ parsed = JSON.parse(await readFile(configPath, 'utf8'));
86
+ }
87
+ catch {
88
+ return { changes: [], warnings: [], conflict: false };
89
+ }
90
+ const beforeSlash = Array.isArray(parsed.slashCommands) ? parsed.slashCommands : [];
91
+ const filteredSlash = beforeSlash.filter((c) => c?.name !== 'orient');
92
+ if (filteredSlash.length === beforeSlash.length && !readMeta(parsed)) {
93
+ return { changes: [], warnings: [], conflict: false };
94
+ }
95
+ parsed.slashCommands = filteredSlash;
96
+ const { next } = removeManaged(parsed);
97
+ if (Array.isArray(next.slashCommands) && next.slashCommands.length === 0) {
98
+ delete next.slashCommands;
99
+ }
100
+ const isEmpty = Object.keys(next).length === 0;
101
+ if (isEmpty) {
102
+ if (!ctx.dryRun)
103
+ await unlink(configPath);
104
+ return {
105
+ changes: [{ path: configPath, kind: 'delete', summary: `remove ${CONFIG_PATH} (was OpenLore-only)` }],
106
+ warnings: [],
107
+ conflict: false,
108
+ };
109
+ }
110
+ if (!ctx.dryRun)
111
+ await writeFile(configPath, JSON.stringify(next, null, 2) + '\n', 'utf8');
112
+ return {
113
+ changes: [{ path: configPath, kind: 'update', summary: `strip OpenLore entries from ${CONFIG_PATH}` }],
114
+ warnings: [],
115
+ conflict: false,
116
+ };
117
+ },
118
+ };
119
+ //# sourceMappingURL=continue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continue.js","sourceRoot":"","sources":["../../../../src/cli/install/adapters/continue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * cursor adapter — writes an OpenLore-managed block to `.cursorrules`, a
3
+ * companion `.cursor/rules/openlore.mdc` file describing the orient() workflow,
4
+ * and registers the OpenLore MCP server in `.cursor/mcp.json`.
5
+ */
6
+ import type { Adapter } from './types.js';
7
+ export declare const cursorAdapter: Adapter;
8
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../../src/cli/install/adapters/cursor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,OAAO,KAAK,EAAE,OAAO,EAA4C,MAAM,YAAY,CAAC;AAoCpF,eAAO,MAAM,aAAa,EAAE,OA0J3B,CAAC"}