@satori-sh/cli 0.0.34 → 0.1.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 (120) hide show
  1. package/README.md +16 -3
  2. package/bin/satori.js +1 -7
  3. package/dist/add.d.ts +23 -0
  4. package/dist/add.d.ts.map +1 -0
  5. package/dist/add.js +55 -0
  6. package/dist/add.js.map +1 -0
  7. package/dist/chunk-pgay1aps.js +27331 -0
  8. package/dist/chunk-zhxnt6w7.js +32 -0
  9. package/dist/commands/add.d.ts +3 -0
  10. package/dist/commands/add.d.ts.map +1 -0
  11. package/dist/commands/add.js +12 -0
  12. package/dist/commands/add.js.map +1 -0
  13. package/dist/commands/chat.d.ts +5 -0
  14. package/dist/commands/chat.d.ts.map +1 -0
  15. package/dist/commands/chat.js +22 -0
  16. package/dist/commands/chat.js.map +1 -0
  17. package/dist/commands/copy-logs.d.ts +3 -0
  18. package/dist/commands/copy-logs.d.ts.map +1 -0
  19. package/dist/commands/copy-logs.js +39 -0
  20. package/dist/commands/copy-logs.js.map +1 -0
  21. package/dist/commands/get.d.ts +3 -0
  22. package/dist/commands/get.d.ts.map +1 -0
  23. package/dist/commands/get.js +21 -0
  24. package/dist/commands/get.js.map +1 -0
  25. package/dist/commands/memory.d.ts +3 -0
  26. package/dist/commands/memory.d.ts.map +1 -0
  27. package/dist/commands/memory.js +37 -0
  28. package/dist/commands/memory.js.map +1 -0
  29. package/dist/commands/search.d.ts +3 -0
  30. package/dist/commands/search.d.ts.map +1 -0
  31. package/dist/commands/search.js +12 -0
  32. package/dist/commands/search.js.map +1 -0
  33. package/dist/commands/sub.d.ts +3 -0
  34. package/dist/commands/sub.d.ts.map +1 -0
  35. package/dist/commands/sub.js +39 -0
  36. package/dist/commands/sub.js.map +1 -0
  37. package/dist/config.d.ts +51 -0
  38. package/dist/config.d.ts.map +1 -0
  39. package/dist/config.js +195 -0
  40. package/dist/config.js.map +1 -0
  41. package/dist/index.d.ts +4 -82
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +65 -5443
  44. package/dist/index.js.map +1 -0
  45. package/dist/lib/ask.d.ts +4 -0
  46. package/dist/lib/ask.d.ts.map +1 -0
  47. package/dist/lib/ask.js +44 -0
  48. package/dist/lib/ask.js.map +1 -0
  49. package/dist/lib/cli-overrides.d.ts +6 -0
  50. package/dist/lib/cli-overrides.d.ts.map +1 -0
  51. package/dist/lib/cli-overrides.js +28 -0
  52. package/dist/lib/cli-overrides.js.map +1 -0
  53. package/dist/lib/config-validation.d.ts +3 -0
  54. package/dist/lib/config-validation.d.ts.map +1 -0
  55. package/dist/lib/config-validation.js +16 -0
  56. package/dist/lib/config-validation.js.map +1 -0
  57. package/dist/lib/constants.d.ts +9 -0
  58. package/dist/lib/constants.d.ts.map +1 -0
  59. package/dist/lib/constants.js +14 -0
  60. package/dist/lib/constants.js.map +1 -0
  61. package/dist/lib/fatal.d.ts +2 -0
  62. package/dist/lib/fatal.d.ts.map +1 -0
  63. package/dist/lib/fatal.js +6 -0
  64. package/dist/lib/fatal.js.map +1 -0
  65. package/dist/lib/info-display.d.ts +14 -0
  66. package/dist/lib/info-display.d.ts.map +1 -0
  67. package/dist/lib/info-display.js +26 -0
  68. package/dist/lib/info-display.js.map +1 -0
  69. package/dist/lib/logging.d.ts +4 -0
  70. package/dist/lib/logging.d.ts.map +1 -0
  71. package/dist/lib/logging.js +24 -0
  72. package/dist/lib/logging.js.map +1 -0
  73. package/dist/lib/telemetry.d.ts +17 -0
  74. package/dist/lib/telemetry.d.ts.map +1 -0
  75. package/dist/lib/telemetry.js +60 -0
  76. package/dist/lib/telemetry.js.map +1 -0
  77. package/dist/memory.d.ts +41 -0
  78. package/dist/memory.d.ts.map +1 -0
  79. package/dist/memory.js +93 -0
  80. package/dist/memory.js.map +1 -0
  81. package/dist/search.d.ts +14 -0
  82. package/dist/search.d.ts.map +1 -0
  83. package/dist/search.js +53 -0
  84. package/dist/search.js.map +1 -0
  85. package/dist/src/add.d.ts +23 -0
  86. package/dist/src/add.d.ts.map +1 -0
  87. package/dist/src/add.js +50 -0
  88. package/dist/src/add.js.map +1 -0
  89. package/dist/src/config.d.ts +51 -0
  90. package/dist/src/config.d.ts.map +1 -0
  91. package/dist/src/config.js +195 -0
  92. package/dist/src/config.js.map +1 -0
  93. package/dist/src/index.d.ts +14 -0
  94. package/dist/src/index.d.ts.map +1 -0
  95. package/dist/src/index.js +446 -0
  96. package/dist/src/index.js.map +1 -0
  97. package/dist/src/memory.d.ts +41 -0
  98. package/dist/src/memory.d.ts.map +1 -0
  99. package/dist/src/memory.js +93 -0
  100. package/dist/src/memory.js.map +1 -0
  101. package/dist/src/search.d.ts +14 -0
  102. package/dist/src/search.d.ts.map +1 -0
  103. package/dist/src/search.js +43 -0
  104. package/dist/src/search.js.map +1 -0
  105. package/dist/src/types.d.ts +74 -0
  106. package/dist/src/types.d.ts.map +1 -0
  107. package/dist/src/types.js +2 -0
  108. package/dist/src/types.js.map +1 -0
  109. package/dist/tests/index.test.d.ts +2 -0
  110. package/dist/tests/index.test.d.ts.map +1 -0
  111. package/dist/tests/index.test.js +252 -0
  112. package/dist/tests/index.test.js.map +1 -0
  113. package/dist/types.d.ts +74 -0
  114. package/dist/types.d.ts.map +1 -0
  115. package/dist/types.js +2 -0
  116. package/dist/types.js.map +1 -0
  117. package/logos/chars.png +0 -0
  118. package/logos/s.png +0 -0
  119. package/logos/satori.png +0 -0
  120. package/package.json +8 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE7F,6BAA6B;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,OAAO,EAAE;KACrC,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,uBAAuB,CAAC;KACpC,OAAO,CAAC,WAAW,CAAC;KACpB,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;KACjD,MAAM,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;AAEvD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI;IACxB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAEjC,eAAe,EAAE,CAAC;IAClB,MAAM,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEzC,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;IACvE,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAE7D,MAAM,YAAY,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC;IAEnE,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IAC/D,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1C,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7C,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7C,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1C,kBAAkB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1C,uBAAuB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE/C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,MAAM,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAChE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC;AACT,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type ProcessUserInput } from '../types.js';
2
+ import { type CaptureEvent } from './telemetry.js';
3
+ export declare const createProcessUserInput: (captureEvent: CaptureEvent) => ProcessUserInput;
4
+ //# sourceMappingURL=ask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.d.ts","sourceRoot":"","sources":["../../src/lib/ask.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAqCnD,eAAO,MAAM,sBAAsB,GAAI,cAAc,YAAY,KAAG,gBAkBnE,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { getConfig } from '../config.js';
2
+ import { resolveMemoryId } from '../memory.js';
3
+ import { DEFAULT_LLM_MODEL } from './constants.js';
4
+ const callAskAPI = async (prompt, memoryId, saveMemory) => {
5
+ const config = await getConfig();
6
+ const headers = {
7
+ 'Content-Type': 'application/json',
8
+ 'Authorization': `Bearer ${config.apiKey}`
9
+ };
10
+ if (config.openaiApiKey) {
11
+ headers['X-OpenAI-Key'] = config.openaiApiKey;
12
+ }
13
+ const response = await fetch(`${config.baseUrl}/ask`, {
14
+ method: 'POST',
15
+ headers,
16
+ body: JSON.stringify({
17
+ prompt,
18
+ memory_id: memoryId,
19
+ llm_model: DEFAULT_LLM_MODEL,
20
+ ...(saveMemory ? { save_memory: true } : {})
21
+ })
22
+ });
23
+ if (response.status === 402) {
24
+ throw new Error('Free tier exceeded. Run `npx @satori-sh sub` to subscribe');
25
+ }
26
+ if (!response.ok) {
27
+ throw new Error(`HTTP error: ${response.status} ${response.statusText}`);
28
+ }
29
+ const data = await response.json();
30
+ return data.response;
31
+ };
32
+ export const createProcessUserInput = (captureEvent) => async (input, options, outputMode) => {
33
+ const { memoryId, instruction } = await resolveMemoryId({ memoryId: options.memoryId });
34
+ const response = await callAskAPI(input, memoryId, options.saveMemory);
35
+ await captureEvent('cli_chat', { output_mode: outputMode });
36
+ if (outputMode === 'cli') {
37
+ console.log(response);
38
+ if (instruction) {
39
+ console.log(`\n${instruction}`);
40
+ }
41
+ }
42
+ return { response, instruction, memoryId };
43
+ };
44
+ //# sourceMappingURL=ask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask.js","sourceRoot":"","sources":["../../src/lib/ask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,UAAU,GAAG,KAAK,EACtB,MAAc,EACd,QAAgB,EAChB,UAAoB,EACH,EAAE;IACnB,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,eAAe,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;KAC3C,CAAC;IACF,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;IAChD,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,MAAM,EAAE;QACpD,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,MAAM;YACN,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,iBAAiB;YAC5B,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAiB,CAAC;IAClD,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAA0B,EAAoB,EAAE,CAAC,KAAK,EAC3F,KAAK,EACL,OAAO,EACP,UAAU,EACV,EAAE;IACF,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvE,MAAM,YAAY,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;IAE5D,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtB,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAC7C,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export type CliOverrides = {
2
+ apiKey?: string;
3
+ memoryId?: string;
4
+ };
5
+ export declare const parseCliOverrides: (argv: string[]) => CliOverrides;
6
+ //# sourceMappingURL=cli-overrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-overrides.d.ts","sourceRoot":"","sources":["../../src/lib/cli-overrides.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA2BF,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,KAAG,YAGjD,CAAC"}
@@ -0,0 +1,28 @@
1
+ const normalizeOverrideValue = (value) => {
2
+ if (!value) {
3
+ return undefined;
4
+ }
5
+ const trimmed = value.trim();
6
+ return trimmed.length > 0 ? trimmed : undefined;
7
+ };
8
+ const readFlagValue = (argv, flag) => {
9
+ const flagEq = `${flag}=`;
10
+ const inline = argv.find((arg) => arg.startsWith(flagEq));
11
+ if (inline) {
12
+ return normalizeOverrideValue(inline.slice(flagEq.length));
13
+ }
14
+ const index = argv.indexOf(flag);
15
+ if (index === -1) {
16
+ return undefined;
17
+ }
18
+ const next = argv[index + 1];
19
+ if (!next || next.startsWith('--')) {
20
+ return undefined;
21
+ }
22
+ return normalizeOverrideValue(next);
23
+ };
24
+ export const parseCliOverrides = (argv) => ({
25
+ apiKey: readFlagValue(argv, '--api-key'),
26
+ memoryId: readFlagValue(argv, '--memory-id')
27
+ });
28
+ //# sourceMappingURL=cli-overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-overrides.js","sourceRoot":"","sources":["../../src/lib/cli-overrides.ts"],"names":[],"mappings":"AAKA,MAAM,sBAAsB,GAAG,CAAC,KAAyB,EAAsB,EAAE;IAC/E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,IAAY,EAAsB,EAAE;IACzE,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAAgB,EAAE,CAAC,CAAC;IAClE,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC;IACxC,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC;CAC7C,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type CliOverrides } from './cli-overrides.js';
2
+ export declare const validateConfig: (argv: string[], overrides: CliOverrides) => Promise<void>;
3
+ //# sourceMappingURL=config-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validation.d.ts","sourceRoot":"","sources":["../../src/lib/config-validation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD,eAAO,MAAM,cAAc,GAAU,MAAM,MAAM,EAAE,EAAE,WAAW,YAAY,kBAU3E,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { getConfig } from '../config.js';
2
+ import { fatal } from './fatal.js';
3
+ const isGetApiKeyCommand = (argv) => (argv[0] === 'get' && argv[1] === 'api-key');
4
+ export const validateConfig = async (argv, overrides) => {
5
+ const hasOverrides = Boolean(overrides.apiKey || overrides.memoryId);
6
+ if (isGetApiKeyCommand(argv) || hasOverrides) {
7
+ return;
8
+ }
9
+ try {
10
+ await getConfig();
11
+ }
12
+ catch (error) {
13
+ fatal(error instanceof Error ? error.message : 'Configuration error');
14
+ }
15
+ };
16
+ //# sourceMappingURL=config-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-validation.js","sourceRoot":"","sources":["../../src/lib/config-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,CAC7C,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,IAAc,EAAE,SAAuB,EAAE,EAAE;IAC9E,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC;IACrE,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7C,OAAO;IACT,CAAC;IACD,IAAI,CAAC;QACH,MAAM,SAAS,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;IACxE,CAAC;AACH,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare const CLI_NAME = "satori";
2
+ export declare const CLI_VERSION = "0.0.1";
3
+ export declare const DEFAULT_LLM_MODEL = "gpt-4o";
4
+ export declare const CLI_LOGO: string;
5
+ export declare const POSTHOG_KEY = "phc_W3oAFaNlYh9rnrCoDY0qC1XnSgl4A2gjBK8bEBwJo0u";
6
+ export declare const POSTHOG_HOST = "https://us.i.posthog.com";
7
+ export declare const LOG_DIR: string;
8
+ export declare const LOG_PATH: string;
9
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ,WAAW,CAAC;AACjC,eAAO,MAAM,WAAW,UAAU,CAAC;AACnC,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAC1C,eAAO,MAAM,QAAQ,QAGT,CAAC;AACb,eAAO,MAAM,WAAW,oDAAoD,CAAC;AAC7E,eAAO,MAAM,YAAY,6BAA6B,CAAC;AACvD,eAAO,MAAM,OAAO,QAAuC,CAAC;AAC5D,eAAO,MAAM,QAAQ,QAA4B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { homedir } from 'node:os';
2
+ import { join } from 'node:path';
3
+ export const CLI_NAME = 'satori';
4
+ export const CLI_VERSION = '0.0.1';
5
+ export const DEFAULT_LLM_MODEL = 'gpt-4o';
6
+ export const CLI_LOGO = [
7
+ '█▀ ▄▀█ ▀█▀ █▀█ █▀█ █',
8
+ '▄█ █▀█ █ █▄█ █▀▄ █'
9
+ ].join('\n');
10
+ export const POSTHOG_KEY = 'phc_W3oAFaNlYh9rnrCoDY0qC1XnSgl4A2gjBK8bEBwJo0u';
11
+ export const POSTHOG_HOST = 'https://us.i.posthog.com';
12
+ export const LOG_DIR = join(homedir(), '.config', 'satori');
13
+ export const LOG_PATH = join(LOG_DIR, 'logs.txt');
14
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/lib/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAG,QAAQ,CAAC;AACjC,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,sBAAsB;IACtB,sBAAsB;CACvB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACb,MAAM,CAAC,MAAM,WAAW,GAAG,iDAAiD,CAAC;AAC7E,MAAM,CAAC,MAAM,YAAY,GAAG,0BAA0B,CAAC;AACvD,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const fatal: (message: string) => never;
2
+ //# sourceMappingURL=fatal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fatal.d.ts","sourceRoot":"","sources":["../../src/lib/fatal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,GAAI,SAAS,MAAM,KAAG,KAIvC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export const fatal = (message) => {
2
+ console.error(message);
3
+ process.exit(1);
4
+ throw new Error(message);
5
+ };
6
+ //# sourceMappingURL=fatal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fatal.js","sourceRoot":"","sources":["../../src/lib/fatal.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,OAAe,EAAS,EAAE;IAC9C,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { type OrgUsageResponse } from '../types.js';
2
+ type OrgContext = {
3
+ orgId: string | null;
4
+ usage: OrgUsageResponse | null;
5
+ };
6
+ export type InfoDisplay = {
7
+ usageLine: string;
8
+ versionLine: string;
9
+ modelLine: string;
10
+ fullLine: string;
11
+ };
12
+ export declare const buildInfoDisplay: (getOrgContext: () => Promise<OrgContext>) => Promise<InfoDisplay>;
13
+ export {};
14
+ //# sourceMappingURL=info-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-display.d.ts","sourceRoot":"","sources":["../../src/lib/info-display.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAUF,eAAO,MAAM,gBAAgB,GAAU,eAAe,MAAM,OAAO,CAAC,UAAU,CAAC,KAAG,OAAO,CAAC,WAAW,CAYpG,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { dirname, join } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { getConfig } from '../config.js';
5
+ import { DEFAULT_LLM_MODEL } from './constants.js';
6
+ const getCliVersion = () => {
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const packagePath = join(__dirname, '..', '..', 'package.json');
9
+ const raw = readFileSync(packagePath, 'utf8');
10
+ const data = JSON.parse(raw);
11
+ return data.version ?? 'unknown';
12
+ };
13
+ export const buildInfoDisplay = async (getOrgContext) => {
14
+ const { usage } = await getOrgContext();
15
+ const config = await getConfig();
16
+ const tokens = usage ? usage.total_tokens.toLocaleString() : 'unknown';
17
+ const memoryId = usage?.memory_id ?? config.memoryId ?? 'unknown';
18
+ const version = getCliVersion();
19
+ return {
20
+ usageLine: `Tokens Used ${tokens} | Memory Layer: ${memoryId}`,
21
+ versionLine: `${version}`,
22
+ modelLine: `Model: ${DEFAULT_LLM_MODEL}`,
23
+ fullLine: `Model: ${DEFAULT_LLM_MODEL} | Tokens: ${tokens} | Memory ID: ${memoryId} | CLI: ${version}`
24
+ };
25
+ };
26
+ //# sourceMappingURL=info-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-display.js","sourceRoot":"","sources":["../../src/lib/info-display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAcnD,MAAM,aAAa,GAAG,GAAG,EAAE;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;IACrD,OAAO,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,aAAwC,EAAwB,EAAE;IACvG,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC;IAClE,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,OAAO;QACL,SAAS,EAAE,eAAe,MAAM,oBAAoB,QAAQ,EAAE;QAC9D,WAAW,EAAE,GAAG,OAAO,EAAE;QACzB,SAAS,EAAE,UAAU,iBAAiB,EAAE;QACxC,QAAQ,EAAE,UAAU,iBAAiB,cAAc,MAAM,iBAAiB,QAAQ,WAAW,OAAO,EAAE;KACvG,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { LOG_PATH } from './constants.js';
2
+ export declare const setupLogCapture: () => void;
3
+ export { LOG_PATH };
4
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/lib/logging.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEnD,eAAO,MAAM,eAAe,YAkB3B,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { createWriteStream, mkdirSync } from 'node:fs';
2
+ import { LOG_DIR, LOG_PATH } from './constants.js';
3
+ export const setupLogCapture = () => {
4
+ try {
5
+ mkdirSync(LOG_DIR, { recursive: true });
6
+ const logStream = createWriteStream(LOG_PATH, { flags: 'a' });
7
+ const stdoutWrite = process.stdout.write.bind(process.stdout);
8
+ const stderrWrite = process.stderr.write.bind(process.stderr);
9
+ // stdout
10
+ process.stdout.write = ((chunk, encoding, callback) => {
11
+ logStream.write(chunk);
12
+ return stdoutWrite(chunk, encoding, callback);
13
+ });
14
+ // stderr
15
+ process.stderr.write = ((chunk, encoding, callback) => {
16
+ logStream.write(chunk);
17
+ return stderrWrite(chunk, encoding, callback);
18
+ });
19
+ }
20
+ catch {
21
+ }
22
+ };
23
+ export { LOG_PATH };
24
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/lib/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,IAAI,CAAC;QACH,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9D,SAAS;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACpD,SAAS,CAAC,KAAK,CAAC,KAA4B,CAAC,CAAC;YAC9C,OAAO,WAAW,CAAC,KAAK,EAAE,QAA0B,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC,CAAgC,CAAC;QAClC,SAAS;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YACpD,SAAS,CAAC,KAAK,CAAC,KAA4B,CAAC,CAAC;YAC9C,OAAO,WAAW,CAAC,KAAK,EAAE,QAA0B,EAAE,QAAQ,CAAC,CAAC;QAClE,CAAC,CAAgC,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;IACT,CAAC;AACH,CAAC,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type Config, type OrgUsageResponse } from '../types.js';
2
+ type OrgContext = {
3
+ orgId: string | null;
4
+ usage: OrgUsageResponse | null;
5
+ };
6
+ type CaptureEvent = (event: string, properties?: Record<string, string | number | boolean>) => Promise<void>;
7
+ type LoadConfig = () => Promise<Config>;
8
+ type LoadStoredApiKey = () => Promise<string | null>;
9
+ export declare const createOrgContext: (loadConfig: LoadConfig, _loadStoredApiKey: LoadStoredApiKey) => {
10
+ getOrgContext: () => Promise<OrgContext>;
11
+ };
12
+ export declare const createTelemetry: (getOrgContext: () => Promise<OrgContext>) => {
13
+ captureEvent: CaptureEvent;
14
+ };
15
+ export declare const createCommandTracker: (captureEvent: CaptureEvent) => (event: string) => Promise<void>;
16
+ export type { CaptureEvent, OrgContext };
17
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIjE,KAAK,UAAU,GAAG;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,KAAK,YAAY,GAAG,CAClB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KACnD,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,KAAK,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;AACxC,KAAK,gBAAgB,GAAG,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAErD,eAAO,MAAM,gBAAgB,GAAI,YAAY,UAAU,EAAE,mBAAmB,gBAAgB;yBAwB1D,OAAO,CAAC,UAAU,CAAC;CAWpD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,eAAe,MAAM,OAAO,CAAC,UAAU,CAAC;;CAoBvE,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,YAAY,MAAY,OAAO,MAAM,kBAEvF,CAAC;AAEF,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { PostHog } from 'posthog-node';
2
+ import { POSTHOG_HOST, POSTHOG_KEY } from './constants.js';
3
+ export const createOrgContext = (loadConfig, _loadStoredApiKey) => {
4
+ let cachedContext = null;
5
+ const fetchOrgUsage = async () => {
6
+ try {
7
+ const config = await loadConfig();
8
+ if (!config.apiKey) {
9
+ return null;
10
+ }
11
+ const response = await fetch(`${config.baseUrl}/org/usage`, {
12
+ method: 'GET',
13
+ headers: {
14
+ 'Authorization': `Bearer ${config.apiKey}`
15
+ }
16
+ });
17
+ if (!response.ok) {
18
+ return null;
19
+ }
20
+ return await response.json();
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ };
26
+ const getOrgContext = async () => {
27
+ if (cachedContext) {
28
+ return cachedContext;
29
+ }
30
+ const usage = await fetchOrgUsage();
31
+ const orgId = usage?.org_id ? String(usage.org_id) : null;
32
+ cachedContext = { orgId, usage };
33
+ return cachedContext;
34
+ };
35
+ return { getOrgContext };
36
+ };
37
+ export const createTelemetry = (getOrgContext) => {
38
+ const client = new PostHog(POSTHOG_KEY, { host: POSTHOG_HOST });
39
+ const captureEvent = async (event, properties) => {
40
+ try {
41
+ const { orgId } = await getOrgContext();
42
+ if (!orgId) {
43
+ return;
44
+ }
45
+ client.capture({
46
+ distinctId: orgId,
47
+ event,
48
+ properties
49
+ });
50
+ await client.flush();
51
+ }
52
+ catch {
53
+ }
54
+ };
55
+ return { captureEvent };
56
+ };
57
+ export const createCommandTracker = (captureEvent) => async (event) => {
58
+ await captureEvent(event);
59
+ };
60
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/lib/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAIvC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAe3D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,UAAsB,EAAE,iBAAmC,EAAE,EAAE;IAC9F,IAAI,aAAa,GAAsB,IAAI,CAAC;IAE5C,MAAM,aAAa,GAAG,KAAK,IAAsC,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,YAAY,EAAE;gBAC1D,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,eAAe,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;iBAC3C;aACF,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAsB,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,IAAyB,EAAE;QACpD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,aAAa,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1D,aAAa,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,aAAwC,EAAE,EAAE;IAC1E,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IAEhE,MAAM,YAAY,GAAiB,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;QAC7D,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,CAAC,OAAO,CAAC;gBACb,UAAU,EAAE,KAAK;gBACjB,KAAK;gBACL,UAAU;aACX,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;QACT,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,YAA0B,EAAE,EAAE,CAAC,KAAK,EAAE,KAAa,EAAE,EAAE;IAC1F,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { SearchResponse } from './types.js';
2
+ /**
3
+ * Options for memory context building.
4
+ */
5
+ interface MemoryOptions {
6
+ /** Existing memory ID to use for the search */
7
+ memoryId?: string;
8
+ /** Number of top memories to retrieve */
9
+ topK?: number;
10
+ }
11
+ type MemoryIdResult = {
12
+ memoryId: string;
13
+ instruction?: string;
14
+ };
15
+ export declare function resolveMemoryId(options?: {
16
+ memoryId?: string;
17
+ }): Promise<MemoryIdResult>;
18
+ /**
19
+ * Builds memory context by searching for relevant memories and generating a memory ID if needed.
20
+ *
21
+ * @param {string} prompt - The user's prompt to search memories for
22
+ * @param {MemoryOptions} [options] - Search options
23
+ * @returns {Promise<{results: SearchResponse['results'], memoryId: string, instruction?: string}>}
24
+ * Object containing search results, the memory ID used/generated, and setup instructions if generated
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const context = await buildMemoryContext("What's my favorite food?", { topK: 3 });
29
+ * console.log(`Found ${context.results.length} relevant memories`);
30
+ * if (context.instruction) console.log(context.instruction);
31
+ * ```
32
+ */
33
+ export declare function buildMemoryContext(prompt: string, options?: MemoryOptions): Promise<{
34
+ results: SearchResponse['results'];
35
+ memoryId: string;
36
+ instruction?: string;
37
+ }>;
38
+ export declare function listMemoryIds(): Promise<string[]>;
39
+ export declare function setMemoryId(memoryId: string): Promise<void>;
40
+ export {};
41
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,cAAc,EAAW,MAAM,YAAY,CAAC;AAG3E;;GAEG;AACH,UAAU,aAAa;IACrB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,eAAe,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CA0BlG;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoC7K;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAavD;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE"}
package/dist/memory.js ADDED
@@ -0,0 +1,93 @@
1
+ import { getConfig, saveMemoryId } from './config.js';
2
+ import { generate } from 'random-words';
3
+ export async function resolveMemoryId(options = {}) {
4
+ const config = await getConfig();
5
+ let memoryId;
6
+ let generated = false;
7
+ if (options.memoryId) {
8
+ memoryId = options.memoryId;
9
+ }
10
+ else if (process.env.SATORI_MEMORY_ID) {
11
+ memoryId = process.env.SATORI_MEMORY_ID;
12
+ }
13
+ else if (config.memoryId) {
14
+ memoryId = config.memoryId;
15
+ }
16
+ else {
17
+ const words = generate({ exactly: 3 });
18
+ memoryId = words.join('-');
19
+ generated = true;
20
+ }
21
+ const instruction = generated ? `Memory session id: ${memoryId}.` : undefined;
22
+ if (generated) {
23
+ saveMemoryId(memoryId).catch(err => {
24
+ console.error('Failed to save memory ID:', err);
25
+ });
26
+ }
27
+ return { memoryId, instruction };
28
+ }
29
+ /**
30
+ * Builds memory context by searching for relevant memories and generating a memory ID if needed.
31
+ *
32
+ * @param {string} prompt - The user's prompt to search memories for
33
+ * @param {MemoryOptions} [options] - Search options
34
+ * @returns {Promise<{results: SearchResponse['results'], memoryId: string, instruction?: string}>}
35
+ * Object containing search results, the memory ID used/generated, and setup instructions if generated
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const context = await buildMemoryContext("What's my favorite food?", { topK: 3 });
40
+ * console.log(`Found ${context.results.length} relevant memories`);
41
+ * if (context.instruction) console.log(context.instruction);
42
+ * ```
43
+ */
44
+ export async function buildMemoryContext(prompt, options = {}) {
45
+ const config = await getConfig();
46
+ const { memoryId, instruction } = await resolveMemoryId({ memoryId: options.memoryId });
47
+ const topK = options.topK || 5;
48
+ const url = `${config.baseUrl}/search`;
49
+ const headers = {
50
+ 'Content-Type': 'application/json',
51
+ 'Authorization': `Bearer ${config.apiKey}`
52
+ };
53
+ const body = JSON.stringify({
54
+ query: prompt,
55
+ memory_id: memoryId,
56
+ top_k: topK
57
+ });
58
+ const response = await fetch(url, {
59
+ method: 'POST',
60
+ headers,
61
+ body
62
+ });
63
+ if (response.status === 402) {
64
+ throw new Error('Free tier exceeded. Run `npx @satori-sh sub` to subscribe');
65
+ }
66
+ if (!response.ok) {
67
+ throw new Error(`HTTP error: ${response.status} ${response.statusText}`);
68
+ }
69
+ const data = await response.json();
70
+ return {
71
+ results: data.results,
72
+ memoryId,
73
+ instruction
74
+ };
75
+ }
76
+ export async function listMemoryIds() {
77
+ const config = await getConfig();
78
+ const response = await fetch(`${config.baseUrl}/org/memory-ids`, {
79
+ method: 'GET',
80
+ headers: {
81
+ 'Authorization': `Bearer ${config.apiKey}`
82
+ }
83
+ });
84
+ if (!response.ok) {
85
+ throw new Error(`HTTP error: ${response.status} ${response.statusText}`);
86
+ }
87
+ const data = await response.json();
88
+ return Array.isArray(data.memory_ids) ? data.memory_ids : [];
89
+ }
90
+ export async function setMemoryId(memoryId) {
91
+ await saveMemoryId(memoryId);
92
+ }
93
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Searches for memories matching the given query.
3
+ *
4
+ * @param {string} query - The search query for memories
5
+ * @returns {Promise<void>} Logs the search results to console
6
+ * @throws {Error} If the query is empty or API call fails
7
+ *
8
+ * @example
9
+ * ```bash
10
+ * satori "what is my favorite food?"
11
+ * ```
12
+ */
13
+ export declare function searchMemories(query: string): Promise<void>;
14
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCjE"}
package/dist/search.js ADDED
@@ -0,0 +1,53 @@
1
+ import { getConfig } from './config.js';
2
+ import { resolveMemoryId } from './memory.js';
3
+ /**
4
+ * Searches for memories matching the given query.
5
+ *
6
+ * @param {string} query - The search query for memories
7
+ * @returns {Promise<void>} Logs the search results to console
8
+ * @throws {Error} If the query is empty or API call fails
9
+ *
10
+ * @example
11
+ * ```bash
12
+ * satori "what is my favorite food?"
13
+ * ```
14
+ */
15
+ export async function searchMemories(query) {
16
+ if (!query || !query.trim()) {
17
+ console.error('Query cannot be empty');
18
+ return;
19
+ }
20
+ try {
21
+ const config = await getConfig();
22
+ const { memoryId } = await resolveMemoryId({ memoryId: config.memoryId });
23
+ const response = await fetch(`${config.baseUrl}/search`, {
24
+ method: 'POST',
25
+ headers: {
26
+ 'Content-Type': 'application/json',
27
+ 'Authorization': `Bearer ${config.apiKey}`
28
+ },
29
+ body: JSON.stringify({ query, memory_ids: [memoryId] })
30
+ });
31
+ if (response.status === 402) {
32
+ console.error('Free tier exceeded. Run `npx @satori-sh sub` to subscribe');
33
+ return;
34
+ }
35
+ if (!response.ok) {
36
+ console.error(`HTTP error: ${response.status} ${response.statusText}`);
37
+ return;
38
+ }
39
+ const data = await response.json();
40
+ if (!Array.isArray(data.results) || data.results.length === 0) {
41
+ console.log('No results.');
42
+ return;
43
+ }
44
+ data.results.forEach((result, index) => {
45
+ const score = typeof result.score === 'number' ? ` (${result.score.toFixed(4)})` : '';
46
+ console.log(`${index + 1}. ${result.memory}${score}`);
47
+ });
48
+ }
49
+ catch (error) {
50
+ console.error(`Error searching memories: ${error instanceof Error ? error.message : error}`);
51
+ }
52
+ }
53
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAa;IAChD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,SAAS,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,MAAM,CAAC,MAAM,EAAE;aAC3C;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC3E,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,eAAe,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAoB,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrC,MAAM,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Adds a new memory to the Satori server.
3
+ *
4
+ * @param {string} text - The text content to add as a memory
5
+ * @param {object} [options] - Additional options for the memory
6
+ * @param {string} [options.memoryId] - Optional memory ID for scoping
7
+ * @returns {Promise<void>} Logs success or error messages to console
8
+ * @throws {Error} If the text is empty
9
+ *
10
+ * @example
11
+ * ```bash
12
+ * satori add "I like pizza"
13
+ * ```
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * await addMemories("User prefers dark mode", { memoryId: "session-123" });
18
+ * ```
19
+ */
20
+ export declare function addMemories(text: string, options?: {
21
+ memoryId?: string;
22
+ }): Promise<void>;
23
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/add.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BlG"}