gnosys 5.5.0 → 5.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +44 -0
  2. package/dist/cli.js +959 -438
  3. package/dist/cli.js.map +1 -1
  4. package/dist/lib/audit.d.ts +13 -0
  5. package/dist/lib/audit.d.ts.map +1 -1
  6. package/dist/lib/audit.js +42 -0
  7. package/dist/lib/audit.js.map +1 -1
  8. package/dist/lib/chat/choose.d.ts +75 -0
  9. package/dist/lib/chat/choose.d.ts.map +1 -0
  10. package/dist/lib/chat/choose.js +146 -0
  11. package/dist/lib/chat/choose.js.map +1 -0
  12. package/dist/lib/chat/commands.d.ts +96 -0
  13. package/dist/lib/chat/commands.d.ts.map +1 -0
  14. package/dist/lib/chat/commands.js +367 -0
  15. package/dist/lib/chat/commands.js.map +1 -0
  16. package/dist/lib/chat/focus.d.ts +70 -0
  17. package/dist/lib/chat/focus.d.ts.map +1 -0
  18. package/dist/lib/chat/focus.js +120 -0
  19. package/dist/lib/chat/focus.js.map +1 -0
  20. package/dist/lib/chat/index.d.ts +32 -0
  21. package/dist/lib/chat/index.d.ts.map +1 -0
  22. package/dist/lib/chat/index.js +151 -0
  23. package/dist/lib/chat/index.js.map +1 -0
  24. package/dist/lib/chat/intent.d.ts +100 -0
  25. package/dist/lib/chat/intent.d.ts.map +1 -0
  26. package/dist/lib/chat/intent.js +192 -0
  27. package/dist/lib/chat/intent.js.map +1 -0
  28. package/dist/lib/chat/llmTurn.d.ts +55 -0
  29. package/dist/lib/chat/llmTurn.d.ts.map +1 -0
  30. package/dist/lib/chat/llmTurn.js +103 -0
  31. package/dist/lib/chat/llmTurn.js.map +1 -0
  32. package/dist/lib/chat/recall.d.ts +58 -0
  33. package/dist/lib/chat/recall.d.ts.map +1 -0
  34. package/dist/lib/chat/recall.js +109 -0
  35. package/dist/lib/chat/recall.js.map +1 -0
  36. package/dist/lib/chat/render.d.ts +30 -0
  37. package/dist/lib/chat/render.d.ts.map +1 -0
  38. package/dist/lib/chat/render.js +755 -0
  39. package/dist/lib/chat/render.js.map +1 -0
  40. package/dist/lib/chat/session.d.ts +121 -0
  41. package/dist/lib/chat/session.d.ts.map +1 -0
  42. package/dist/lib/chat/session.js +148 -0
  43. package/dist/lib/chat/session.js.map +1 -0
  44. package/dist/lib/chat/toolFence.d.ts +54 -0
  45. package/dist/lib/chat/toolFence.d.ts.map +1 -0
  46. package/dist/lib/chat/toolFence.js +90 -0
  47. package/dist/lib/chat/toolFence.js.map +1 -0
  48. package/dist/lib/chat/tools.d.ts +48 -0
  49. package/dist/lib/chat/tools.d.ts.map +1 -0
  50. package/dist/lib/chat/tools.js +338 -0
  51. package/dist/lib/chat/tools.js.map +1 -0
  52. package/dist/lib/chat/types.d.ts +42 -0
  53. package/dist/lib/chat/types.d.ts.map +1 -0
  54. package/dist/lib/chat/types.js +6 -0
  55. package/dist/lib/chat/types.js.map +1 -0
  56. package/dist/lib/chat/write.d.ts +66 -0
  57. package/dist/lib/chat/write.d.ts.map +1 -0
  58. package/dist/lib/chat/write.js +203 -0
  59. package/dist/lib/chat/write.js.map +1 -0
  60. package/dist/lib/db.d.ts +41 -1
  61. package/dist/lib/db.d.ts.map +1 -1
  62. package/dist/lib/db.js +136 -28
  63. package/dist/lib/db.js.map +1 -1
  64. package/dist/lib/exportProject.d.ts +51 -0
  65. package/dist/lib/exportProject.d.ts.map +1 -0
  66. package/dist/lib/exportProject.js +72 -0
  67. package/dist/lib/exportProject.js.map +1 -0
  68. package/dist/lib/importProject.d.ts +35 -0
  69. package/dist/lib/importProject.d.ts.map +1 -0
  70. package/dist/lib/importProject.js +135 -0
  71. package/dist/lib/importProject.js.map +1 -0
  72. package/dist/lib/remote.d.ts +23 -0
  73. package/dist/lib/remote.d.ts.map +1 -1
  74. package/dist/lib/remote.js +88 -0
  75. package/dist/lib/remote.js.map +1 -1
  76. package/dist/lib/remoteWizard.d.ts.map +1 -1
  77. package/dist/lib/remoteWizard.js +13 -17
  78. package/dist/lib/remoteWizard.js.map +1 -1
  79. package/dist/lib/setup/sections/ides.d.ts +20 -0
  80. package/dist/lib/setup/sections/ides.d.ts.map +1 -0
  81. package/dist/lib/setup/sections/ides.js +124 -0
  82. package/dist/lib/setup/sections/ides.js.map +1 -0
  83. package/dist/lib/setup/sections/preferences.d.ts +30 -0
  84. package/dist/lib/setup/sections/preferences.d.ts.map +1 -0
  85. package/dist/lib/setup/sections/preferences.js +128 -0
  86. package/dist/lib/setup/sections/preferences.js.map +1 -0
  87. package/dist/lib/setup/sections/routing.d.ts +21 -0
  88. package/dist/lib/setup/sections/routing.d.ts.map +1 -0
  89. package/dist/lib/setup/sections/routing.js +160 -0
  90. package/dist/lib/setup/sections/routing.js.map +1 -0
  91. package/dist/lib/setup/summary.d.ts +42 -0
  92. package/dist/lib/setup/summary.d.ts.map +1 -0
  93. package/dist/lib/setup/summary.js +206 -0
  94. package/dist/lib/setup/summary.js.map +1 -0
  95. package/dist/lib/timeline.d.ts +7 -0
  96. package/dist/lib/timeline.d.ts.map +1 -1
  97. package/dist/lib/timeline.js +19 -5
  98. package/dist/lib/timeline.js.map +1 -1
  99. package/package.json +7 -1
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Chat-side memory recall.
3
+ *
4
+ * Wraps the existing federated search to produce a set of memories suitable
5
+ * for injection into the LLM system prompt. Always includes pinned memories
6
+ * regardless of search relevance.
7
+ */
8
+ import { GnosysDB } from "../db.js";
9
+ import { Turn } from "./types.js";
10
+ export type RecallScope = "project" | "user" | "global" | "federated";
11
+ export interface RecallOptions {
12
+ /** Search query — usually the latest user input plus a tail of conversation. */
13
+ query: string;
14
+ /** Recall scope. "federated" means search across all scopes with tier boosting. */
15
+ scope: RecallScope;
16
+ /** Active project ID (used by federated search for tier boosting). Null when no project context. */
17
+ projectId: string | null;
18
+ /** Confidence threshold — drop memories below this. 0 disables. */
19
+ threshold: number;
20
+ /** Pinned memory IDs — always included, ranked first. */
21
+ pinnedIds: string[];
22
+ /** Max non-pinned results (default 5). */
23
+ limit?: number;
24
+ }
25
+ export interface RecalledMemory {
26
+ id: string;
27
+ title: string;
28
+ content: string;
29
+ category: string;
30
+ scope: string;
31
+ confidence: number;
32
+ /** True when included because it's pinned (not because the query matched it). */
33
+ pinned: boolean;
34
+ /** Federated search score; 0 for pinned memories that didn't match the query. */
35
+ score: number;
36
+ }
37
+ export interface RecallResult {
38
+ memories: RecalledMemory[];
39
+ /** The query string actually run (may differ from input — e.g. trimmed). */
40
+ query: string;
41
+ /** Total candidates considered before threshold/limit. */
42
+ considered: number;
43
+ }
44
+ /** Build a search query from the current user input + a few recent turns for context. */
45
+ export declare function buildRecallQuery(userInput: string, buffer: Turn[]): string;
46
+ /**
47
+ * Run recall for one chat turn. Returns pinned memories first (always),
48
+ * then top federated matches respecting scope and threshold.
49
+ */
50
+ export declare function runRecall(db: GnosysDB, opts: RecallOptions): RecallResult;
51
+ /**
52
+ * Render recalled memories as a system-prompt block. Pinned memories are
53
+ * marked so the model knows the user has explicitly anchored them.
54
+ */
55
+ export declare function formatRecallForPrompt(memories: RecalledMemory[]): string;
56
+ /** Reinforce a memory: bump modified date so it's surfaced as recent. */
57
+ export declare function reinforceMemory(db: GnosysDB, memoryId: string): boolean;
58
+ //# sourceMappingURL=recall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../../src/lib/chat/recall.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAY,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEtE,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,KAAK,EAAE,WAAW,CAAC;IACnB,oGAAoG;IACpG,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,MAAM,EAAE,OAAO,CAAC;IAChB,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,yFAAyF;AACzF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAQ1E;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,GAAG,YAAY,CA4DzE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAUxE;AAED,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CASvE"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Chat-side memory recall.
3
+ *
4
+ * Wraps the existing federated search to produce a set of memories suitable
5
+ * for injection into the LLM system prompt. Always includes pinned memories
6
+ * regardless of search relevance.
7
+ */
8
+ import { federatedSearch } from "../federated.js";
9
+ const MAX_QUERY_LEN = 200;
10
+ /** Build a search query from the current user input + a few recent turns for context. */
11
+ export function buildRecallQuery(userInput, buffer) {
12
+ const tail = buffer
13
+ .filter((t) => t.role === "user" || t.role === "assistant")
14
+ .slice(-2)
15
+ .map((t) => t.text)
16
+ .join(" ");
17
+ const combined = `${userInput} ${tail}`.trim().slice(0, MAX_QUERY_LEN);
18
+ return combined;
19
+ }
20
+ /**
21
+ * Run recall for one chat turn. Returns pinned memories first (always),
22
+ * then top federated matches respecting scope and threshold.
23
+ */
24
+ export function runRecall(db, opts) {
25
+ const limit = opts.limit ?? 5;
26
+ const memories = [];
27
+ const seen = new Set();
28
+ // 1. Pinned memories — always included (ranked first)
29
+ for (const id of opts.pinnedIds) {
30
+ const mem = db.getMemory(id);
31
+ if (!mem)
32
+ continue;
33
+ seen.add(id);
34
+ memories.push({
35
+ id: mem.id,
36
+ title: mem.title,
37
+ content: mem.content,
38
+ category: mem.category,
39
+ scope: mem.scope,
40
+ confidence: mem.confidence,
41
+ pinned: true,
42
+ score: 0,
43
+ });
44
+ }
45
+ // 2. Federated search — but exclude pinned IDs and apply scope filter
46
+ const scopeFilter = opts.scope === "federated" ? undefined : [opts.scope];
47
+ const results = federatedSearch(db, opts.query, {
48
+ limit: Math.max(limit * 2, 20), // over-fetch so threshold can drop some
49
+ projectId: opts.projectId,
50
+ scopeFilter: scopeFilter,
51
+ });
52
+ let considered = results.length + opts.pinnedIds.length;
53
+ for (const r of results) {
54
+ if (memories.length - opts.pinnedIds.length >= limit)
55
+ break;
56
+ if (seen.has(r.id))
57
+ continue;
58
+ const mem = db.getMemory(r.id);
59
+ if (!mem)
60
+ continue;
61
+ if (mem.confidence < opts.threshold)
62
+ continue;
63
+ seen.add(r.id);
64
+ memories.push({
65
+ id: mem.id,
66
+ title: mem.title,
67
+ content: mem.content,
68
+ category: mem.category,
69
+ scope: mem.scope,
70
+ confidence: mem.confidence,
71
+ pinned: false,
72
+ score: r.score,
73
+ });
74
+ }
75
+ return {
76
+ memories,
77
+ query: opts.query,
78
+ considered,
79
+ };
80
+ }
81
+ /**
82
+ * Render recalled memories as a system-prompt block. Pinned memories are
83
+ * marked so the model knows the user has explicitly anchored them.
84
+ */
85
+ export function formatRecallForPrompt(memories) {
86
+ if (memories.length === 0)
87
+ return "";
88
+ const blocks = memories.map((m) => {
89
+ const pinTag = m.pinned ? ` pinned="true"` : "";
90
+ return `<memory id="${m.id}" category="${m.category}" confidence="${m.confidence}"${pinTag}>\n# ${m.title}\n${m.content}\n</memory>`;
91
+ });
92
+ return [
93
+ "RELEVANT MEMORY (you have persistent memory via Gnosys; cite ids when you use them):",
94
+ ...blocks,
95
+ ].join("\n\n");
96
+ }
97
+ /** Reinforce a memory: bump modified date so it's surfaced as recent. */
98
+ export function reinforceMemory(db, memoryId) {
99
+ const mem = db.getMemory(memoryId);
100
+ if (!mem)
101
+ return false;
102
+ db.updateMemory(memoryId, {
103
+ modified: new Date().toISOString(),
104
+ reinforcement_count: (mem.reinforcement_count ?? 0) + 1,
105
+ last_reinforced: new Date().toISOString(),
106
+ });
107
+ return true;
108
+ }
109
+ //# sourceMappingURL=recall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recall.js","sourceRoot":"","sources":["../../../src/lib/chat/recall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Chat TUI — ink-based React components.
3
+ *
4
+ * Layout:
5
+ * ┌────────────────────────────────────────┐
6
+ * │ Header: project | provider/model | tokens │
7
+ * ├────────────────────────────────────────┤
8
+ * │ Conversation │
9
+ * │ user / assistant turns scroll │
10
+ * │ system messages in dim text │
11
+ * ├────────────────────────────────────────┤
12
+ * │ Status: idle | thinking… | error │
13
+ * ├────────────────────────────────────────┤
14
+ * │ > input prompt │
15
+ * └────────────────────────────────────────┘
16
+ */
17
+ import React from "react";
18
+ import { ChatHeaderInfo, Turn } from "./types.js";
19
+ import { GnosysConfig } from "../config.js";
20
+ export interface ChatAppProps {
21
+ initialHeader: ChatHeaderInfo;
22
+ initialBuffer: Turn[];
23
+ config: GnosysConfig;
24
+ /** Project ID for recall scoping (null when no project context). */
25
+ projectId: string | null;
26
+ /** Called on exit so the parent CLI process can clean up. */
27
+ onExit?: () => void;
28
+ }
29
+ export declare const ChatApp: React.FC<ChatAppProps>;
30
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/lib/chat/render.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAsC,MAAM,OAAO,CAAC;AAK3D,OAAO,EAAE,cAAc,EAAc,IAAI,EAAE,MAAM,YAAY,CAAC;AAyB9D,OAAO,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAC;AAG7D,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,cAAc,CAAC;IAC9B,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,oEAAoE;IACpE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA4sB1C,CAAC"}