mem-os-python 1.6.27__py3-none-any.whl

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 (253) hide show
  1. mem_os_python-1.6.27.dist-info/METADATA +1032 -0
  2. mem_os_python-1.6.27.dist-info/RECORD +253 -0
  3. mem_os_python-1.6.27.dist-info/WHEEL +4 -0
  4. mem_os_python-1.6.27.dist-info/entry_points.txt +2 -0
  5. mem_os_python-1.6.27.dist-info/licenses/LICENSE +21 -0
  6. memos/__init__.py +16 -0
  7. memos/_js/adapters/anthropic.d.ts +279 -0
  8. memos/_js/adapters/anthropic.d.ts.map +1 -0
  9. memos/_js/adapters/anthropic.js +348 -0
  10. memos/_js/adapters/anthropic.js.map +1 -0
  11. memos/_js/adapters/base.d.ts +10 -0
  12. memos/_js/adapters/base.d.ts.map +1 -0
  13. memos/_js/adapters/base.js +2 -0
  14. memos/_js/adapters/base.js.map +1 -0
  15. memos/_js/adapters/openai.d.ts +264 -0
  16. memos/_js/adapters/openai.d.ts.map +1 -0
  17. memos/_js/adapters/openai.js +342 -0
  18. memos/_js/adapters/openai.js.map +1 -0
  19. memos/_js/apps/explorer.d.ts +244 -0
  20. memos/_js/apps/explorer.d.ts.map +1 -0
  21. memos/_js/apps/explorer.js +738 -0
  22. memos/_js/apps/explorer.js.map +1 -0
  23. memos/_js/citations.d.ts +65 -0
  24. memos/_js/citations.d.ts.map +1 -0
  25. memos/_js/citations.js +143 -0
  26. memos/_js/citations.js.map +1 -0
  27. memos/_js/cli-browse.d.ts +3 -0
  28. memos/_js/cli-browse.d.ts.map +1 -0
  29. memos/_js/cli-browse.js +129 -0
  30. memos/_js/cli-browse.js.map +1 -0
  31. memos/_js/cli-completion.d.ts +31 -0
  32. memos/_js/cli-completion.d.ts.map +1 -0
  33. memos/_js/cli-completion.js +340 -0
  34. memos/_js/cli-completion.js.map +1 -0
  35. memos/_js/cli-help.d.ts +18 -0
  36. memos/_js/cli-help.d.ts.map +1 -0
  37. memos/_js/cli-help.js +357 -0
  38. memos/_js/cli-help.js.map +1 -0
  39. memos/_js/cli.d.ts +28 -0
  40. memos/_js/cli.d.ts.map +1 -0
  41. memos/_js/cli.js +2880 -0
  42. memos/_js/cli.js.map +1 -0
  43. memos/_js/compression.d.ts +25 -0
  44. memos/_js/compression.d.ts.map +1 -0
  45. memos/_js/compression.js +319 -0
  46. memos/_js/compression.js.map +1 -0
  47. memos/_js/confidence-machine.d.ts +99 -0
  48. memos/_js/confidence-machine.d.ts.map +1 -0
  49. memos/_js/confidence-machine.js +222 -0
  50. memos/_js/confidence-machine.js.map +1 -0
  51. memos/_js/context-pack.d.ts +506 -0
  52. memos/_js/context-pack.d.ts.map +1 -0
  53. memos/_js/context-pack.js +1435 -0
  54. memos/_js/context-pack.js.map +1 -0
  55. memos/_js/contradictions.d.ts +160 -0
  56. memos/_js/contradictions.d.ts.map +1 -0
  57. memos/_js/contradictions.js +255 -0
  58. memos/_js/contradictions.js.map +1 -0
  59. memos/_js/dashboard.d.ts +30 -0
  60. memos/_js/dashboard.d.ts.map +1 -0
  61. memos/_js/dashboard.js +302 -0
  62. memos/_js/dashboard.js.map +1 -0
  63. memos/_js/ebbinghaus.d.ts +29 -0
  64. memos/_js/ebbinghaus.d.ts.map +1 -0
  65. memos/_js/ebbinghaus.js +32 -0
  66. memos/_js/ebbinghaus.js.map +1 -0
  67. memos/_js/embedding-queue.d.ts +190 -0
  68. memos/_js/embedding-queue.d.ts.map +1 -0
  69. memos/_js/embedding-queue.js +316 -0
  70. memos/_js/embedding-queue.js.map +1 -0
  71. memos/_js/embeddings.d.ts +187 -0
  72. memos/_js/embeddings.d.ts.map +1 -0
  73. memos/_js/embeddings.js +633 -0
  74. memos/_js/embeddings.js.map +1 -0
  75. memos/_js/entity-extraction.d.ts +54 -0
  76. memos/_js/entity-extraction.d.ts.map +1 -0
  77. memos/_js/entity-extraction.js +325 -0
  78. memos/_js/entity-extraction.js.map +1 -0
  79. memos/_js/entity-index.d.ts +93 -0
  80. memos/_js/entity-index.d.ts.map +1 -0
  81. memos/_js/entity-index.js +165 -0
  82. memos/_js/entity-index.js.map +1 -0
  83. memos/_js/event-memory.d.ts +147 -0
  84. memos/_js/event-memory.d.ts.map +1 -0
  85. memos/_js/event-memory.js +290 -0
  86. memos/_js/event-memory.js.map +1 -0
  87. memos/_js/external-import.d.ts +98 -0
  88. memos/_js/external-import.d.ts.map +1 -0
  89. memos/_js/external-import.js +669 -0
  90. memos/_js/external-import.js.map +1 -0
  91. memos/_js/fidelity.d.ts +367 -0
  92. memos/_js/fidelity.d.ts.map +1 -0
  93. memos/_js/fidelity.js +911 -0
  94. memos/_js/fidelity.js.map +1 -0
  95. memos/_js/graph-expansion.d.ts +119 -0
  96. memos/_js/graph-expansion.d.ts.map +1 -0
  97. memos/_js/graph-expansion.js +213 -0
  98. memos/_js/graph-expansion.js.map +1 -0
  99. memos/_js/graph-mermaid.d.ts +13 -0
  100. memos/_js/graph-mermaid.d.ts.map +1 -0
  101. memos/_js/graph-mermaid.js +32 -0
  102. memos/_js/graph-mermaid.js.map +1 -0
  103. memos/_js/graph.d.ts +170 -0
  104. memos/_js/graph.d.ts.map +1 -0
  105. memos/_js/graph.js +482 -0
  106. memos/_js/graph.js.map +1 -0
  107. memos/_js/harness.d.ts +63 -0
  108. memos/_js/harness.d.ts.map +1 -0
  109. memos/_js/harness.js +93 -0
  110. memos/_js/harness.js.map +1 -0
  111. memos/_js/importance.d.ts +118 -0
  112. memos/_js/importance.d.ts.map +1 -0
  113. memos/_js/importance.js +144 -0
  114. memos/_js/importance.js.map +1 -0
  115. memos/_js/index.d.ts +51 -0
  116. memos/_js/index.d.ts.map +1 -0
  117. memos/_js/index.js +53 -0
  118. memos/_js/index.js.map +1 -0
  119. memos/_js/mcp.d.ts +58 -0
  120. memos/_js/mcp.d.ts.map +1 -0
  121. memos/_js/mcp.js +1853 -0
  122. memos/_js/mcp.js.map +1 -0
  123. memos/_js/memory.d.ts +1762 -0
  124. memos/_js/memory.d.ts.map +1 -0
  125. memos/_js/memory.js +6283 -0
  126. memos/_js/memory.js.map +1 -0
  127. memos/_js/procedural.d.ts +74 -0
  128. memos/_js/procedural.d.ts.map +1 -0
  129. memos/_js/procedural.js +125 -0
  130. memos/_js/procedural.js.map +1 -0
  131. memos/_js/project-config.d.ts +68 -0
  132. memos/_js/project-config.d.ts.map +1 -0
  133. memos/_js/project-config.js +59 -0
  134. memos/_js/project-config.js.map +1 -0
  135. memos/_js/proof-of-forgetting.d.ts +57 -0
  136. memos/_js/proof-of-forgetting.d.ts.map +1 -0
  137. memos/_js/proof-of-forgetting.js +80 -0
  138. memos/_js/proof-of-forgetting.js.map +1 -0
  139. memos/_js/provenance.d.ts +122 -0
  140. memos/_js/provenance.d.ts.map +1 -0
  141. memos/_js/provenance.js +182 -0
  142. memos/_js/provenance.js.map +1 -0
  143. memos/_js/quarantine-commands.d.ts +23 -0
  144. memos/_js/quarantine-commands.d.ts.map +1 -0
  145. memos/_js/quarantine-commands.js +42 -0
  146. memos/_js/quarantine-commands.js.map +1 -0
  147. memos/_js/quarantine.d.ts +120 -0
  148. memos/_js/quarantine.d.ts.map +1 -0
  149. memos/_js/quarantine.js +873 -0
  150. memos/_js/quarantine.js.map +1 -0
  151. memos/_js/redact.d.ts +12 -0
  152. memos/_js/redact.d.ts.map +1 -0
  153. memos/_js/redact.js +26 -0
  154. memos/_js/redact.js.map +1 -0
  155. memos/_js/repl.d.ts +57 -0
  156. memos/_js/repl.d.ts.map +1 -0
  157. memos/_js/repl.js +295 -0
  158. memos/_js/repl.js.map +1 -0
  159. memos/_js/rerank-local.d.ts +61 -0
  160. memos/_js/rerank-local.d.ts.map +1 -0
  161. memos/_js/rerank-local.js +210 -0
  162. memos/_js/rerank-local.js.map +1 -0
  163. memos/_js/retain-filter.d.ts +98 -0
  164. memos/_js/retain-filter.d.ts.map +1 -0
  165. memos/_js/retain-filter.js +232 -0
  166. memos/_js/retain-filter.js.map +1 -0
  167. memos/_js/retrieval.d.ts +265 -0
  168. memos/_js/retrieval.d.ts.map +1 -0
  169. memos/_js/retrieval.js +1018 -0
  170. memos/_js/retrieval.js.map +1 -0
  171. memos/_js/revert.d.ts +77 -0
  172. memos/_js/revert.d.ts.map +1 -0
  173. memos/_js/revert.js +252 -0
  174. memos/_js/revert.js.map +1 -0
  175. memos/_js/scope.d.ts +30 -0
  176. memos/_js/scope.d.ts.map +1 -0
  177. memos/_js/scope.js +71 -0
  178. memos/_js/scope.js.map +1 -0
  179. memos/_js/semantic-screen.d.ts +152 -0
  180. memos/_js/semantic-screen.d.ts.map +1 -0
  181. memos/_js/semantic-screen.js +290 -0
  182. memos/_js/semantic-screen.js.map +1 -0
  183. memos/_js/session-hooks.d.ts +127 -0
  184. memos/_js/session-hooks.d.ts.map +1 -0
  185. memos/_js/session-hooks.js +482 -0
  186. memos/_js/session-hooks.js.map +1 -0
  187. memos/_js/storage/sqlite.d.ts +427 -0
  188. memos/_js/storage/sqlite.d.ts.map +1 -0
  189. memos/_js/storage/sqlite.js +2428 -0
  190. memos/_js/storage/sqlite.js.map +1 -0
  191. memos/_js/sync.d.ts +213 -0
  192. memos/_js/sync.d.ts.map +1 -0
  193. memos/_js/sync.js +389 -0
  194. memos/_js/sync.js.map +1 -0
  195. memos/_js/tamper-log.d.ts +98 -0
  196. memos/_js/tamper-log.d.ts.map +1 -0
  197. memos/_js/tamper-log.js +327 -0
  198. memos/_js/tamper-log.js.map +1 -0
  199. memos/_js/temporal.d.ts +92 -0
  200. memos/_js/temporal.d.ts.map +1 -0
  201. memos/_js/temporal.js +536 -0
  202. memos/_js/temporal.js.map +1 -0
  203. memos/_js/time-travel.d.ts +38 -0
  204. memos/_js/time-travel.d.ts.map +1 -0
  205. memos/_js/time-travel.js +46 -0
  206. memos/_js/time-travel.js.map +1 -0
  207. memos/_js/timestamp-format.d.ts +18 -0
  208. memos/_js/timestamp-format.d.ts.map +1 -0
  209. memos/_js/timestamp-format.js +52 -0
  210. memos/_js/timestamp-format.js.map +1 -0
  211. memos/_js/triple-extraction.d.ts +31 -0
  212. memos/_js/triple-extraction.d.ts.map +1 -0
  213. memos/_js/triple-extraction.js +116 -0
  214. memos/_js/triple-extraction.js.map +1 -0
  215. memos/_js/types.d.ts +2474 -0
  216. memos/_js/types.d.ts.map +1 -0
  217. memos/_js/types.js +20 -0
  218. memos/_js/types.js.map +1 -0
  219. memos/_js/updater.d.ts +95 -0
  220. memos/_js/updater.d.ts.map +1 -0
  221. memos/_js/updater.js +268 -0
  222. memos/_js/updater.js.map +1 -0
  223. memos/_js/version.d.ts +17 -0
  224. memos/_js/version.d.ts.map +1 -0
  225. memos/_js/version.js +34 -0
  226. memos/_js/version.js.map +1 -0
  227. memos/_js/vision/clip-query-cache.d.ts +58 -0
  228. memos/_js/vision/clip-query-cache.d.ts.map +1 -0
  229. memos/_js/vision/clip-query-cache.js +79 -0
  230. memos/_js/vision/clip-query-cache.js.map +1 -0
  231. memos/_js/vision/clip.d.ts +113 -0
  232. memos/_js/vision/clip.d.ts.map +1 -0
  233. memos/_js/vision/clip.js +224 -0
  234. memos/_js/vision/clip.js.map +1 -0
  235. memos/_js/vision/fake-clip.d.ts +55 -0
  236. memos/_js/vision/fake-clip.d.ts.map +1 -0
  237. memos/_js/vision/fake-clip.js +122 -0
  238. memos/_js/vision/fake-clip.js.map +1 -0
  239. memos/_js/vision/index.d.ts +15 -0
  240. memos/_js/vision/index.d.ts.map +1 -0
  241. memos/_js/vision/index.js +13 -0
  242. memos/_js/vision/index.js.map +1 -0
  243. memos/_js/vision/store.d.ts +137 -0
  244. memos/_js/vision/store.d.ts.map +1 -0
  245. memos/_js/vision/store.js +383 -0
  246. memos/_js/vision/store.js.map +1 -0
  247. memos/adapters/__init__.py +0 -0
  248. memos/adapters/crewai.py +385 -0
  249. memos/adapters/langchain.py +301 -0
  250. memos/adapters/ollama.py +396 -0
  251. memos/server/__init__.py +0 -0
  252. memos/server/main.py +547 -0
  253. memos/server/routes.py +360 -0
@@ -0,0 +1,340 @@
1
+ /**
2
+ * Shell completion for the `memos` CLI.
3
+ *
4
+ * `memos completion <bash|zsh|fish>` prints a completion script to stdout.
5
+ * The scripts are generated from the canonical command list in
6
+ * `./cli-help.js` plus the per-command flag table below, so they can never
7
+ * drift out of sync with the CLI itself.
8
+ *
9
+ * Install:
10
+ * # bash
11
+ * memos completion bash >> ~/.bashrc
12
+ * # zsh (needs a dir on your $fpath, e.g. ~/.zfunc)
13
+ * memos completion zsh > ~/.zfunc/_memos
14
+ * # fish
15
+ * memos completion fish > ~/.config/fish/completions/memos.fish
16
+ *
17
+ * @module @memos/cli-completion
18
+ */
19
+ import { CLI_COMMANDS } from "./cli-help.js";
20
+ export const COMPLETION_SHELLS = [
21
+ "bash",
22
+ "zsh",
23
+ "fish",
24
+ ];
25
+ /** Short descriptions shown by zsh/fish alongside each command. */
26
+ const COMMAND_DESCS = {
27
+ init: "Interactive setup wizard",
28
+ store: "Store a new memory",
29
+ retrieve: "Retrieve a memory by ID",
30
+ search: "Search memories by text",
31
+ forget: "Delete a memory by ID",
32
+ summarize: "Summarize all memories",
33
+ graph: "Print the memory graph",
34
+ browse: "Interactive terminal browser",
35
+ link: "Link two memories",
36
+ count: "Show memory count",
37
+ tag: "Add tags to a memory",
38
+ untag: "Remove tags from a memory",
39
+ list: "List memories by tag",
40
+ export: "Export memories to file",
41
+ backup: "Back up the database",
42
+ restore: "Restore from a backup",
43
+ "import-external": "Import a ChatGPT/Claude memory export",
44
+ import: "Import a chat export",
45
+ learn: "Capture a procedural lesson",
46
+ lesson: "Record a lesson outcome",
47
+ lessons: "List procedural lessons",
48
+ cite: "Trace a citation token to its memory",
49
+ quarantine: "Review the quarantine queue",
50
+ harness: "Cross-harness memory tools",
51
+ history: "Version timeline for one memory",
52
+ revert: "Revert a memory to a previous version",
53
+ reminders: "List scheduled reminders",
54
+ remind: "Store a reminder",
55
+ digest: "Run consolidation now",
56
+ consolidate: "Offline maintenance pass",
57
+ encrypt: "Encrypt the database in place",
58
+ decrypt: "Remove database encryption",
59
+ stats: "Token-savings telemetry",
60
+ compact: "Fidelity backfill for stored memories",
61
+ doctor: "Health-check the store and config",
62
+ connect: "Register the MCP server with a harness",
63
+ "reindex-embeddings": "Re-embed all memories",
64
+ mcp: "Start the MCP stdio server",
65
+ trio: "Show or launch the AI Trio",
66
+ completion: "Print shell completion script",
67
+ help: "Show help",
68
+ };
69
+ /** Flags beyond the global ones, per command. */
70
+ const COMMAND_FLAGS = {
71
+ init: ["--yes"],
72
+ store: ["--type", "--ttl", "--pool", "--context", "--scope", "--tags"],
73
+ retrieve: [],
74
+ search: ["--limit", "--pool", "--scope", "--harness"],
75
+ forget: [],
76
+ summarize: [],
77
+ graph: ["--mermaid"],
78
+ browse: [],
79
+ link: [],
80
+ count: [],
81
+ tag: [],
82
+ untag: [],
83
+ list: ["--tag"],
84
+ export: ["--format", "--output", "--tag"],
85
+ backup: ["--output"],
86
+ restore: [],
87
+ "import-external": ["--source", "--dry-run", "--max-items", "--namespace"],
88
+ import: [
89
+ "--from",
90
+ "--file",
91
+ "--dir",
92
+ "--synthesize",
93
+ "--dry-run",
94
+ "--max-items",
95
+ "--namespace",
96
+ ],
97
+ learn: ["--context", "--tags"],
98
+ lesson: ["--outcome"],
99
+ lessons: ["--namespace", "--limit"],
100
+ cite: [],
101
+ quarantine: ["--limit"],
102
+ harness: ["--from", "--dry-run"],
103
+ history: [],
104
+ revert: ["--last", "--id", "--about", "--dry-run", "--reason", "--actor"],
105
+ reminders: ["--due", "--namespace"],
106
+ remind: [],
107
+ digest: [],
108
+ consolidate: [
109
+ "--dry-run",
110
+ "--no-summarize",
111
+ "--no-decay",
112
+ "--decay-half-life",
113
+ "--min-retention",
114
+ "--older-than",
115
+ "--namespace",
116
+ "--watch",
117
+ "--interval-min",
118
+ ],
119
+ encrypt: ["--key"],
120
+ decrypt: ["--key"],
121
+ stats: [],
122
+ compact: ["--stats", "--namespace", "--limit", "--dry-run"],
123
+ doctor: [],
124
+ connect: ["--write"],
125
+ "extract-facts": [
126
+ "--transcript",
127
+ "--namespace",
128
+ "--min-confidence",
129
+ "--dry-run",
130
+ ],
131
+ "session-hook": ["--transcript", "--opencode-session", "--namespace"],
132
+ "reindex-embeddings": ["--purge-stale"],
133
+ mcp: [],
134
+ trio: ["--up"],
135
+ completion: [],
136
+ help: [],
137
+ sync: [
138
+ "--input",
139
+ "--output",
140
+ "--passphrase",
141
+ "--passphrase-file",
142
+ "--strategy",
143
+ ],
144
+ };
145
+ /** Flags accepted by (almost) every command. */
146
+ const GLOBAL_FLAGS = ["--db", "--json", "--help"];
147
+ /** Fixed value sets for flags/positionals that take an enum. */
148
+ const FLAG_VALUES = {
149
+ "--from": ["chatgpt", "claude", "slack"],
150
+ "--source": ["auto", "chatgpt", "claude", "generic"],
151
+ "--format": ["json", "markdown", "obsidian"],
152
+ "--pool": ["event", "note", "procedure"],
153
+ "--outcome": ["success", "failure"],
154
+ "--strategy": ["skip-existing", "last-write-wins"],
155
+ };
156
+ /** Positional value sets: `command -> values` for the first positional. */
157
+ const POSITIONAL_VALUES = {
158
+ completion: [...COMPLETION_SHELLS],
159
+ quarantine: ["list", "release"],
160
+ harness: ["list", "merge"],
161
+ sync: ["export", "import", "status"],
162
+ connect: [
163
+ "claude-code",
164
+ "cursor",
165
+ "windsurf",
166
+ "cline",
167
+ "opencode",
168
+ "codex",
169
+ "gemini",
170
+ "generic",
171
+ ],
172
+ };
173
+ function commandsExcludingHelp() {
174
+ return CLI_COMMANDS.filter((c) => c !== "help" && c !== "completion");
175
+ }
176
+ function allFlagsFor(cmd) {
177
+ const extra = COMMAND_FLAGS[cmd] ?? [];
178
+ return [...GLOBAL_FLAGS, ...extra];
179
+ }
180
+ function shList(items) {
181
+ return items.join(" ");
182
+ }
183
+ // ---------------------------------------------------------------------------
184
+ // bash
185
+ // ---------------------------------------------------------------------------
186
+ function bashScript() {
187
+ const cmds = shList(commandsExcludingHelp());
188
+ const lines = [
189
+ "# memos bash completion — generated by `memos completion bash`",
190
+ "# Install: memos completion bash >> ~/.bashrc",
191
+ "_memos() {",
192
+ " local cur prev cmds flags",
193
+ " COMPREPLY=()",
194
+ ' cur="${COMP_WORDS[COMP_CWORD]}"',
195
+ ' prev="${COMP_WORDS[COMP_CWORD-1]}"',
196
+ ` cmds="${cmds}"`,
197
+ "",
198
+ " # enum-valued flags: complete the value",
199
+ ' case "$prev" in',
200
+ ];
201
+ for (const [flag, values] of Object.entries(FLAG_VALUES)) {
202
+ lines.push(` ${flag}) COMPREPLY=( $(compgen -W "${shList(values)}" -- "$cur") ); return 0 ;;`);
203
+ }
204
+ lines.push(" esac", "", " # first positional: the command itself", " if [[ $COMP_CWORD -eq 1 ]]; then", ' COMPREPLY=( $(compgen -W "$cmds" -- "$cur") )', " return 0", " fi", "", " # `memos completion <shell>`", ' if [[ "${COMP_WORDS[1]}" == "completion" && $COMP_CWORD -eq 2 ]]; then', ` COMPREPLY=( $(compgen -W "${shList(COMPLETION_SHELLS)}" -- "$cur") )`, " return 0", " fi", "", " # positional enums (quarantine list|release, ...)", ' case "${COMP_WORDS[1]}" in');
205
+ for (const [cmd, values] of Object.entries(POSITIONAL_VALUES)) {
206
+ if (cmd === "completion")
207
+ continue; // handled above
208
+ lines.push(` ${cmd}) if [[ "$cur" != -* ]]; then COMPREPLY=( $(compgen -W "${shList(values)}" -- "$cur") ); return 0; fi ;;`);
209
+ }
210
+ lines.push(" esac", "", " # flags for the active command", ' flags="--db --json --help"', ' case "${COMP_WORDS[1]}" in');
211
+ for (const cmd of commandsExcludingHelp()) {
212
+ const extra = COMMAND_FLAGS[cmd] ?? [];
213
+ if (extra.length > 0) {
214
+ lines.push(` ${cmd}) flags="$flags ${shList(extra)}" ;;`);
215
+ }
216
+ }
217
+ lines.push(" esac", ' COMPREPLY=( $(compgen -W "$flags" -- "$cur") )', " return 0", "}", "complete -F _memos memos", "");
218
+ return lines.join("\n");
219
+ }
220
+ // ---------------------------------------------------------------------------
221
+ // zsh
222
+ // ---------------------------------------------------------------------------
223
+ /**
224
+ * Escape a string for embedding in a single-quoted shell string.
225
+ * Both zsh and fish treat backslash as literal inside single quotes, so
226
+ * `\'` does NOT escape — the portable idiom is '\'' (end quote, escaped
227
+ * quote, reopen quote). CodeQL js/incomplete-sanitization flags the
228
+ * backslash form.
229
+ */
230
+ export function shSingleQuoteEscape(s) {
231
+ return s.replace(/'/g, `'\\''`);
232
+ }
233
+ function zshEscape(s) {
234
+ return shSingleQuoteEscape(s);
235
+ }
236
+ function zshScript() {
237
+ const lines = [
238
+ "#compdef memos",
239
+ "# memos zsh completion — generated by `memos completion zsh`",
240
+ "# Install: memos completion zsh > ~/.zfunc/_memos (with ~/.zfunc on $fpath)",
241
+ "",
242
+ "_memos() {",
243
+ " local context state line",
244
+ " typeset -A opt_args",
245
+ "",
246
+ " _arguments -C \\",
247
+ " '1:command:->command' \\",
248
+ " '*::options:->options'",
249
+ "",
250
+ " case $state in",
251
+ " command)",
252
+ " local -a commands",
253
+ " commands=(",
254
+ ];
255
+ for (const cmd of commandsExcludingHelp()) {
256
+ const desc = COMMAND_DESCS[cmd] ?? "";
257
+ lines.push(` '${zshEscape(cmd)}:${zshEscape(desc)}'`);
258
+ }
259
+ lines.push(" )", " _describe -t commands 'memos command' commands", " ;;", " options)", " case $line[1] in");
260
+ for (const cmd of commandsExcludingHelp()) {
261
+ const flags = allFlagsFor(cmd);
262
+ const argLines = flags.map((f) => {
263
+ const values = FLAG_VALUES[f];
264
+ // `_arguments` spec: '--flag[desc]: :values'
265
+ const spec = values
266
+ ? `'${f}[${f}]:${f.replace(/^--/, "")}:(${shList(values)})'`
267
+ : `'${f}[${f}]'`;
268
+ return ` ${spec} \\`;
269
+ });
270
+ const positional = POSITIONAL_VALUES[cmd];
271
+ if (positional && cmd !== "completion") {
272
+ argLines.push(` '1: :(${shList(positional)})' \\`);
273
+ }
274
+ if (cmd === "completion") {
275
+ argLines.push(` '1:shell:(${shList(COMPLETION_SHELLS)})' \\`);
276
+ }
277
+ // strip trailing backslash from last line
278
+ const last = argLines.pop();
279
+ argLines.push(last.replace(/ \\$/, ""));
280
+ lines.push(` ${cmd})`);
281
+ lines.push(" _arguments \\");
282
+ lines.push(...argLines);
283
+ lines.push(" ;;");
284
+ }
285
+ lines.push(" esac", " ;;", " esac", "}", "", '_memos "$@"', "");
286
+ return lines.join("\n");
287
+ }
288
+ // ---------------------------------------------------------------------------
289
+ // fish
290
+ // ---------------------------------------------------------------------------
291
+ function fishScript() {
292
+ const lines = [
293
+ "# memos fish completion — generated by `memos completion fish`",
294
+ "# Install: memos completion fish > ~/.config/fish/completions/memos.fish",
295
+ "",
296
+ ];
297
+ // subcommands
298
+ for (const cmd of commandsExcludingHelp()) {
299
+ const desc = shSingleQuoteEscape(COMMAND_DESCS[cmd] ?? "");
300
+ lines.push(`complete -c memos -f -n '__fish_use_subcommand' -a '${cmd}' -d '${desc}'`);
301
+ }
302
+ lines.push("");
303
+ // per-command flags
304
+ for (const cmd of commandsExcludingHelp()) {
305
+ const cond = `__fish_seen_subcommand_from ${cmd}`;
306
+ for (const flag of allFlagsFor(cmd)) {
307
+ const name = flag.replace(/^--/, "");
308
+ const values = FLAG_VALUES[flag];
309
+ if (values) {
310
+ lines.push(`complete -c memos -f -n '${cond}' -l '${name}' -x -a '${shList(values)}' -d '${flag} value'`);
311
+ }
312
+ else {
313
+ lines.push(`complete -c memos -f -n '${cond}' -l '${name}' -d '${flag}'`);
314
+ }
315
+ }
316
+ const positional = POSITIONAL_VALUES[cmd];
317
+ if (positional) {
318
+ lines.push(`complete -c memos -f -n '${cond}' -a '${shList(positional)}'`);
319
+ }
320
+ }
321
+ // `memos completion <shell>`
322
+ lines.push(`complete -c memos -f -n '__fish_seen_subcommand_from completion' -a '${shList(COMPLETION_SHELLS)}'`);
323
+ lines.push("");
324
+ return lines.join("\n");
325
+ }
326
+ // ---------------------------------------------------------------------------
327
+ /** Generate the completion script for a shell, or null for unknown shells. */
328
+ export function getCompletionScript(shell) {
329
+ switch (shell) {
330
+ case "bash":
331
+ return bashScript();
332
+ case "zsh":
333
+ return zshScript();
334
+ case "fish":
335
+ return fishScript();
336
+ default:
337
+ return null;
338
+ }
339
+ }
340
+ //# sourceMappingURL=cli-completion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-completion.js","sourceRoot":"","sources":["../src/cli-completion.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared CLI help data: the canonical command list, did-you-mean suggestions,
3
+ * and per-command usage text for `memos <command> --help`.
4
+ *
5
+ * Kept in its own module (no process.argv reads) so it can be unit-tested.
6
+ *
7
+ * @module @memos/cli-help
8
+ */
9
+ /** Every command the CLI actually implements (mirrors the dispatch in cli.ts). */
10
+ export declare const CLI_COMMANDS: readonly string[];
11
+ /**
12
+ * Suggest the most likely intended command for a typo'd input.
13
+ * Returns null when nothing is close enough to be helpful.
14
+ */
15
+ export declare function suggestCommand(input: string): string | null;
16
+ /** Usage text for one command, or null for unknown commands. */
17
+ export declare function getCommandHelp(command: string): string | null;
18
+ //# sourceMappingURL=cli-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-help.d.ts","sourceRoot":"","sources":["../src/cli-help.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,kFAAkF;AAClF,eAAO,MAAM,YAAY,EAAE,SAAS,MAAM,EAkDzC,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB3D;AA8PD,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI7D"}