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.
- package/README.md +44 -0
- package/dist/cli.js +959 -438
- package/dist/cli.js.map +1 -1
- package/dist/lib/audit.d.ts +13 -0
- package/dist/lib/audit.d.ts.map +1 -1
- package/dist/lib/audit.js +42 -0
- package/dist/lib/audit.js.map +1 -1
- package/dist/lib/chat/choose.d.ts +75 -0
- package/dist/lib/chat/choose.d.ts.map +1 -0
- package/dist/lib/chat/choose.js +146 -0
- package/dist/lib/chat/choose.js.map +1 -0
- package/dist/lib/chat/commands.d.ts +96 -0
- package/dist/lib/chat/commands.d.ts.map +1 -0
- package/dist/lib/chat/commands.js +367 -0
- package/dist/lib/chat/commands.js.map +1 -0
- package/dist/lib/chat/focus.d.ts +70 -0
- package/dist/lib/chat/focus.d.ts.map +1 -0
- package/dist/lib/chat/focus.js +120 -0
- package/dist/lib/chat/focus.js.map +1 -0
- package/dist/lib/chat/index.d.ts +32 -0
- package/dist/lib/chat/index.d.ts.map +1 -0
- package/dist/lib/chat/index.js +151 -0
- package/dist/lib/chat/index.js.map +1 -0
- package/dist/lib/chat/intent.d.ts +100 -0
- package/dist/lib/chat/intent.d.ts.map +1 -0
- package/dist/lib/chat/intent.js +192 -0
- package/dist/lib/chat/intent.js.map +1 -0
- package/dist/lib/chat/llmTurn.d.ts +55 -0
- package/dist/lib/chat/llmTurn.d.ts.map +1 -0
- package/dist/lib/chat/llmTurn.js +103 -0
- package/dist/lib/chat/llmTurn.js.map +1 -0
- package/dist/lib/chat/recall.d.ts +58 -0
- package/dist/lib/chat/recall.d.ts.map +1 -0
- package/dist/lib/chat/recall.js +109 -0
- package/dist/lib/chat/recall.js.map +1 -0
- package/dist/lib/chat/render.d.ts +30 -0
- package/dist/lib/chat/render.d.ts.map +1 -0
- package/dist/lib/chat/render.js +755 -0
- package/dist/lib/chat/render.js.map +1 -0
- package/dist/lib/chat/session.d.ts +121 -0
- package/dist/lib/chat/session.d.ts.map +1 -0
- package/dist/lib/chat/session.js +148 -0
- package/dist/lib/chat/session.js.map +1 -0
- package/dist/lib/chat/toolFence.d.ts +54 -0
- package/dist/lib/chat/toolFence.d.ts.map +1 -0
- package/dist/lib/chat/toolFence.js +90 -0
- package/dist/lib/chat/toolFence.js.map +1 -0
- package/dist/lib/chat/tools.d.ts +48 -0
- package/dist/lib/chat/tools.d.ts.map +1 -0
- package/dist/lib/chat/tools.js +338 -0
- package/dist/lib/chat/tools.js.map +1 -0
- package/dist/lib/chat/types.d.ts +42 -0
- package/dist/lib/chat/types.d.ts.map +1 -0
- package/dist/lib/chat/types.js +6 -0
- package/dist/lib/chat/types.js.map +1 -0
- package/dist/lib/chat/write.d.ts +66 -0
- package/dist/lib/chat/write.d.ts.map +1 -0
- package/dist/lib/chat/write.js +203 -0
- package/dist/lib/chat/write.js.map +1 -0
- package/dist/lib/db.d.ts +41 -1
- package/dist/lib/db.d.ts.map +1 -1
- package/dist/lib/db.js +136 -28
- package/dist/lib/db.js.map +1 -1
- package/dist/lib/exportProject.d.ts +51 -0
- package/dist/lib/exportProject.d.ts.map +1 -0
- package/dist/lib/exportProject.js +72 -0
- package/dist/lib/exportProject.js.map +1 -0
- package/dist/lib/importProject.d.ts +35 -0
- package/dist/lib/importProject.d.ts.map +1 -0
- package/dist/lib/importProject.js +135 -0
- package/dist/lib/importProject.js.map +1 -0
- package/dist/lib/remote.d.ts +23 -0
- package/dist/lib/remote.d.ts.map +1 -1
- package/dist/lib/remote.js +88 -0
- package/dist/lib/remote.js.map +1 -1
- package/dist/lib/remoteWizard.d.ts.map +1 -1
- package/dist/lib/remoteWizard.js +13 -17
- package/dist/lib/remoteWizard.js.map +1 -1
- package/dist/lib/setup/sections/ides.d.ts +20 -0
- package/dist/lib/setup/sections/ides.d.ts.map +1 -0
- package/dist/lib/setup/sections/ides.js +124 -0
- package/dist/lib/setup/sections/ides.js.map +1 -0
- package/dist/lib/setup/sections/preferences.d.ts +30 -0
- package/dist/lib/setup/sections/preferences.d.ts.map +1 -0
- package/dist/lib/setup/sections/preferences.js +128 -0
- package/dist/lib/setup/sections/preferences.js.map +1 -0
- package/dist/lib/setup/sections/routing.d.ts +21 -0
- package/dist/lib/setup/sections/routing.d.ts.map +1 -0
- package/dist/lib/setup/sections/routing.js +160 -0
- package/dist/lib/setup/sections/routing.js.map +1 -0
- package/dist/lib/setup/summary.d.ts +42 -0
- package/dist/lib/setup/summary.d.ts.map +1 -0
- package/dist/lib/setup/summary.js +206 -0
- package/dist/lib/setup/summary.js.map +1 -0
- package/dist/lib/timeline.d.ts +7 -0
- package/dist/lib/timeline.d.ts.map +1 -1
- package/dist/lib/timeline.js +19 -5
- package/dist/lib/timeline.js.map +1 -1
- package/package.json +7 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/lib/chat/render.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat session log — append-only JSONL writer + reader.
|
|
3
|
+
*
|
|
4
|
+
* Every turn (user, assistant, recall, command, choice, focus shift, etc.) is
|
|
5
|
+
* appended as one JSON line. fsync'd before the next prompt so no turn is lost
|
|
6
|
+
* on crash. The log is the source of truth for `--resume`.
|
|
7
|
+
*/
|
|
8
|
+
/** Resolved on each call so test environments and runtime overrides take effect. */
|
|
9
|
+
export declare function getSessionLogDir(): string;
|
|
10
|
+
/** Session log entry types. */
|
|
11
|
+
export type SessionEvent = {
|
|
12
|
+
type: "session_start";
|
|
13
|
+
ts: string;
|
|
14
|
+
project_id?: string;
|
|
15
|
+
provider?: string;
|
|
16
|
+
model?: string;
|
|
17
|
+
} | {
|
|
18
|
+
type: "user";
|
|
19
|
+
ts: string;
|
|
20
|
+
text: string;
|
|
21
|
+
} | {
|
|
22
|
+
type: "assistant";
|
|
23
|
+
ts: string;
|
|
24
|
+
text: string;
|
|
25
|
+
provider?: string;
|
|
26
|
+
model?: string;
|
|
27
|
+
tokens_in?: number;
|
|
28
|
+
tokens_out?: number;
|
|
29
|
+
cited_memory_ids?: string[];
|
|
30
|
+
} | {
|
|
31
|
+
type: "recall";
|
|
32
|
+
ts: string;
|
|
33
|
+
query: string;
|
|
34
|
+
memory_ids: string[];
|
|
35
|
+
scope: string;
|
|
36
|
+
} | {
|
|
37
|
+
type: "command";
|
|
38
|
+
ts: string;
|
|
39
|
+
name: string;
|
|
40
|
+
args: string[];
|
|
41
|
+
result?: string;
|
|
42
|
+
} | {
|
|
43
|
+
type: "intent_inferred";
|
|
44
|
+
ts: string;
|
|
45
|
+
pattern: string;
|
|
46
|
+
intent: string;
|
|
47
|
+
accepted: boolean;
|
|
48
|
+
} | {
|
|
49
|
+
type: "choice_offered";
|
|
50
|
+
ts: string;
|
|
51
|
+
prompt: string;
|
|
52
|
+
option_ids: string[];
|
|
53
|
+
} | {
|
|
54
|
+
type: "choice_made";
|
|
55
|
+
ts: string;
|
|
56
|
+
option_id: string;
|
|
57
|
+
label: string;
|
|
58
|
+
} | {
|
|
59
|
+
type: "focus";
|
|
60
|
+
ts: string;
|
|
61
|
+
topic: string;
|
|
62
|
+
previous_topic?: string;
|
|
63
|
+
} | {
|
|
64
|
+
type: "branch";
|
|
65
|
+
ts: string;
|
|
66
|
+
from_session: string;
|
|
67
|
+
new_session: string;
|
|
68
|
+
} | {
|
|
69
|
+
type: "pin";
|
|
70
|
+
ts: string;
|
|
71
|
+
memory_id: string;
|
|
72
|
+
} | {
|
|
73
|
+
type: "unpin";
|
|
74
|
+
ts: string;
|
|
75
|
+
memory_id: string;
|
|
76
|
+
} | {
|
|
77
|
+
type: "memory_promoted";
|
|
78
|
+
ts: string;
|
|
79
|
+
memory_id: string;
|
|
80
|
+
source: "remember" | "save-turn" | "auto" | "attach";
|
|
81
|
+
} | {
|
|
82
|
+
type: "session_end";
|
|
83
|
+
ts: string;
|
|
84
|
+
reason: "quit" | "timeout" | "error";
|
|
85
|
+
} | {
|
|
86
|
+
type: "error";
|
|
87
|
+
ts: string;
|
|
88
|
+
message: string;
|
|
89
|
+
};
|
|
90
|
+
export interface SessionMetadata {
|
|
91
|
+
id: string;
|
|
92
|
+
path: string;
|
|
93
|
+
created: string;
|
|
94
|
+
last_active: string;
|
|
95
|
+
project_id?: string;
|
|
96
|
+
turns: number;
|
|
97
|
+
size_bytes: number;
|
|
98
|
+
}
|
|
99
|
+
/** Generate a new session ID (ULID for time-sortability). */
|
|
100
|
+
export declare function newSessionId(): string;
|
|
101
|
+
/** Resolve the file path for a session ID. */
|
|
102
|
+
export declare function sessionPath(sessionId: string): string;
|
|
103
|
+
/** Append a single event to the session log. fsync ensures durability. */
|
|
104
|
+
export declare function appendEvent(sessionId: string, event: SessionEvent): void;
|
|
105
|
+
/** Open or create a session and write the start event. Returns the session ID. */
|
|
106
|
+
export declare function startSession(opts: {
|
|
107
|
+
id?: string;
|
|
108
|
+
project_id?: string;
|
|
109
|
+
provider?: string;
|
|
110
|
+
model?: string;
|
|
111
|
+
}): string;
|
|
112
|
+
/** Read every event from a session log, in order. */
|
|
113
|
+
export declare function readSession(sessionId: string): SessionEvent[];
|
|
114
|
+
/** List all session metadata, newest first. Cheap — only stats files + reads first event. */
|
|
115
|
+
export declare function listSessions(): SessionMetadata[];
|
|
116
|
+
/** Full-text search across all session logs. Returns sessionId + matching event lines. */
|
|
117
|
+
export declare function searchSessions(query: string, limit?: number): Array<{
|
|
118
|
+
sessionId: string;
|
|
119
|
+
event: SessionEvent;
|
|
120
|
+
}>;
|
|
121
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/lib/chat/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat session log — append-only JSONL writer + reader.
|
|
3
|
+
*
|
|
4
|
+
* Every turn (user, assistant, recall, command, choice, focus shift, etc.) is
|
|
5
|
+
* appended as one JSON line. fsync'd before the next prompt so no turn is lost
|
|
6
|
+
* on crash. The log is the source of truth for `--resume`.
|
|
7
|
+
*/
|
|
8
|
+
import { existsSync, mkdirSync, appendFileSync, readFileSync, readdirSync, statSync } from "fs";
|
|
9
|
+
import { join } from "path";
|
|
10
|
+
import { homedir } from "os";
|
|
11
|
+
import { ulid } from "ulidx";
|
|
12
|
+
/** Resolved on each call so test environments and runtime overrides take effect. */
|
|
13
|
+
export function getSessionLogDir() {
|
|
14
|
+
return (process.env.GNOSYS_CHAT_SESSIONS_DIR ||
|
|
15
|
+
join(process.env.GNOSYS_HOME || join(homedir(), ".gnosys"), "chat-sessions"));
|
|
16
|
+
}
|
|
17
|
+
function ensureDir() {
|
|
18
|
+
if (!existsSync(getSessionLogDir())) {
|
|
19
|
+
mkdirSync(getSessionLogDir(), { recursive: true });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/** Generate a new session ID (ULID for time-sortability). */
|
|
23
|
+
export function newSessionId() {
|
|
24
|
+
return ulid();
|
|
25
|
+
}
|
|
26
|
+
/** Resolve the file path for a session ID. */
|
|
27
|
+
export function sessionPath(sessionId) {
|
|
28
|
+
return join(getSessionLogDir(), `${sessionId}.jsonl`);
|
|
29
|
+
}
|
|
30
|
+
/** Append a single event to the session log. fsync ensures durability. */
|
|
31
|
+
export function appendEvent(sessionId, event) {
|
|
32
|
+
ensureDir();
|
|
33
|
+
const line = JSON.stringify(event) + "\n";
|
|
34
|
+
// appendFileSync defaults to {flag: 'a'} which O_APPEND-opens, writes, closes.
|
|
35
|
+
// On macOS/Linux this is durable enough for a chat log; we don't need fsync()
|
|
36
|
+
// on every line — the cost outweighs the benefit for an interactive REPL.
|
|
37
|
+
appendFileSync(sessionPath(sessionId), line, { encoding: "utf-8" });
|
|
38
|
+
}
|
|
39
|
+
/** Open or create a session and write the start event. Returns the session ID. */
|
|
40
|
+
export function startSession(opts) {
|
|
41
|
+
const id = opts.id ?? newSessionId();
|
|
42
|
+
appendEvent(id, {
|
|
43
|
+
type: "session_start",
|
|
44
|
+
ts: new Date().toISOString(),
|
|
45
|
+
project_id: opts.project_id,
|
|
46
|
+
provider: opts.provider,
|
|
47
|
+
model: opts.model,
|
|
48
|
+
});
|
|
49
|
+
return id;
|
|
50
|
+
}
|
|
51
|
+
/** Read every event from a session log, in order. */
|
|
52
|
+
export function readSession(sessionId) {
|
|
53
|
+
const path = sessionPath(sessionId);
|
|
54
|
+
if (!existsSync(path))
|
|
55
|
+
return [];
|
|
56
|
+
const raw = readFileSync(path, "utf-8");
|
|
57
|
+
const events = [];
|
|
58
|
+
for (const line of raw.split("\n")) {
|
|
59
|
+
if (!line.trim())
|
|
60
|
+
continue;
|
|
61
|
+
try {
|
|
62
|
+
events.push(JSON.parse(line));
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
// Skip malformed line — log corruption from partial write
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return events;
|
|
69
|
+
}
|
|
70
|
+
/** List all session metadata, newest first. Cheap — only stats files + reads first event. */
|
|
71
|
+
export function listSessions() {
|
|
72
|
+
ensureDir();
|
|
73
|
+
const files = readdirSync(getSessionLogDir()).filter((f) => f.endsWith(".jsonl"));
|
|
74
|
+
const out = [];
|
|
75
|
+
for (const f of files) {
|
|
76
|
+
const id = f.replace(/\.jsonl$/, "");
|
|
77
|
+
const path = join(getSessionLogDir(), f);
|
|
78
|
+
let stat;
|
|
79
|
+
try {
|
|
80
|
+
stat = statSync(path);
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
// Read just the first event for project_id and created
|
|
86
|
+
let created = stat.birthtime.toISOString();
|
|
87
|
+
let project_id;
|
|
88
|
+
try {
|
|
89
|
+
const events = readSession(id);
|
|
90
|
+
if (events.length > 0) {
|
|
91
|
+
const first = events[0];
|
|
92
|
+
if (first.type === "session_start") {
|
|
93
|
+
created = first.ts;
|
|
94
|
+
project_id = first.project_id;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
out.push({
|
|
98
|
+
id,
|
|
99
|
+
path,
|
|
100
|
+
created,
|
|
101
|
+
last_active: stat.mtime.toISOString(),
|
|
102
|
+
project_id,
|
|
103
|
+
turns: events.filter((e) => e.type === "user" || e.type === "assistant").length,
|
|
104
|
+
size_bytes: stat.size,
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
// Skip unreadable files
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Newest first
|
|
112
|
+
out.sort((a, b) => b.last_active.localeCompare(a.last_active));
|
|
113
|
+
return out;
|
|
114
|
+
}
|
|
115
|
+
/** Full-text search across all session logs. Returns sessionId + matching event lines. */
|
|
116
|
+
export function searchSessions(query, limit = 50) {
|
|
117
|
+
const needle = query.toLowerCase();
|
|
118
|
+
const sessions = listSessions();
|
|
119
|
+
const matches = [];
|
|
120
|
+
for (const s of sessions) {
|
|
121
|
+
const events = readSession(s.id);
|
|
122
|
+
for (const event of events) {
|
|
123
|
+
// Search across user text, assistant text, command names, focus topics
|
|
124
|
+
const haystack = (() => {
|
|
125
|
+
switch (event.type) {
|
|
126
|
+
case "user":
|
|
127
|
+
case "assistant":
|
|
128
|
+
return event.text;
|
|
129
|
+
case "command":
|
|
130
|
+
return `${event.name} ${event.args.join(" ")} ${event.result ?? ""}`;
|
|
131
|
+
case "focus":
|
|
132
|
+
return event.topic;
|
|
133
|
+
case "recall":
|
|
134
|
+
return event.query;
|
|
135
|
+
default:
|
|
136
|
+
return "";
|
|
137
|
+
}
|
|
138
|
+
})().toLowerCase();
|
|
139
|
+
if (haystack.includes(needle)) {
|
|
140
|
+
matches.push({ sessionId: s.id, event });
|
|
141
|
+
if (matches.length >= limit)
|
|
142
|
+
return matches;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return matches;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/lib/chat/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse `gnosys-tool` fenced blocks emitted by the chat LLM.
|
|
3
|
+
*
|
|
4
|
+
* Format:
|
|
5
|
+
* ```gnosys-tool
|
|
6
|
+
* tool: <name>
|
|
7
|
+
* <param>: <value>
|
|
8
|
+
* <param>: <value>
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Supports multiple fences in one assistant turn (the LLM might call list +
|
|
12
|
+
* read in one go). Each parse returns the tool name + key/value args + the
|
|
13
|
+
* surrounding text so the renderer can show the conversation cleanly.
|
|
14
|
+
*/
|
|
15
|
+
export interface ParsedToolCall {
|
|
16
|
+
tool: string;
|
|
17
|
+
args: Record<string, string>;
|
|
18
|
+
/** Source text of the full fence (for fail-soft display when needed). */
|
|
19
|
+
rawFence: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ToolFenceExtraction {
|
|
22
|
+
/** Text before any fences. */
|
|
23
|
+
before: string;
|
|
24
|
+
/** Text after the last fence. */
|
|
25
|
+
after: string;
|
|
26
|
+
/** Each parsed tool call in order of appearance. */
|
|
27
|
+
calls: ParsedToolCall[];
|
|
28
|
+
/** Errors keyed to the index in `calls` they would have occupied. */
|
|
29
|
+
parseErrors: Array<{
|
|
30
|
+
rawFence: string;
|
|
31
|
+
reason: string;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Extract every gnosys-tool fence in the text. Returns the text between
|
|
36
|
+
* fences alongside the parsed calls. Failed parses are surfaced separately
|
|
37
|
+
* so the renderer can warn without breaking the chat.
|
|
38
|
+
*/
|
|
39
|
+
export declare function extractToolFences(text: string): ToolFenceExtraction | null;
|
|
40
|
+
/**
|
|
41
|
+
* Parse the body of a gnosys-tool fence into { tool, args }.
|
|
42
|
+
*
|
|
43
|
+
* Schema:
|
|
44
|
+
* tool: <name> # required
|
|
45
|
+
* <param>: <value> # zero or more
|
|
46
|
+
*
|
|
47
|
+
* Whitespace and trailing punctuation are tolerated. Comments (lines
|
|
48
|
+
* starting with `#`) are ignored.
|
|
49
|
+
*/
|
|
50
|
+
export declare function parseToolBody(body: string): {
|
|
51
|
+
tool: string;
|
|
52
|
+
args: Record<string, string>;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=toolFence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolFence.d.ts","sourceRoot":"","sources":["../../../src/lib/chat/toolFence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,qEAAqE;IACrE,WAAW,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAID;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAuC1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAoB1F"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse `gnosys-tool` fenced blocks emitted by the chat LLM.
|
|
3
|
+
*
|
|
4
|
+
* Format:
|
|
5
|
+
* ```gnosys-tool
|
|
6
|
+
* tool: <name>
|
|
7
|
+
* <param>: <value>
|
|
8
|
+
* <param>: <value>
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Supports multiple fences in one assistant turn (the LLM might call list +
|
|
12
|
+
* read in one go). Each parse returns the tool name + key/value args + the
|
|
13
|
+
* surrounding text so the renderer can show the conversation cleanly.
|
|
14
|
+
*/
|
|
15
|
+
const FENCE_RE = /```\s*gnosys-tool\s*\n([\s\S]*?)```/g;
|
|
16
|
+
/**
|
|
17
|
+
* Extract every gnosys-tool fence in the text. Returns the text between
|
|
18
|
+
* fences alongside the parsed calls. Failed parses are surfaced separately
|
|
19
|
+
* so the renderer can warn without breaking the chat.
|
|
20
|
+
*/
|
|
21
|
+
export function extractToolFences(text) {
|
|
22
|
+
const calls = [];
|
|
23
|
+
const parseErrors = [];
|
|
24
|
+
const fences = [];
|
|
25
|
+
let match;
|
|
26
|
+
// Reset lastIndex since we use a global regex
|
|
27
|
+
FENCE_RE.lastIndex = 0;
|
|
28
|
+
while ((match = FENCE_RE.exec(text)) !== null) {
|
|
29
|
+
fences.push({
|
|
30
|
+
start: match.index,
|
|
31
|
+
end: match.index + match[0].length,
|
|
32
|
+
raw: match[0],
|
|
33
|
+
body: match[1].trim(),
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (fences.length === 0)
|
|
37
|
+
return null;
|
|
38
|
+
for (const f of fences) {
|
|
39
|
+
try {
|
|
40
|
+
const parsed = parseToolBody(f.body);
|
|
41
|
+
if (!parsed.tool) {
|
|
42
|
+
parseErrors.push({ rawFence: f.raw, reason: "missing `tool:` line" });
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
calls.push({ tool: parsed.tool, args: parsed.args, rawFence: f.raw });
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
parseErrors.push({
|
|
49
|
+
rawFence: f.raw,
|
|
50
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
const before = text.slice(0, fences[0].start).trimEnd();
|
|
55
|
+
const after = text.slice(fences[fences.length - 1].end).trimStart();
|
|
56
|
+
return { before, after, calls, parseErrors };
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Parse the body of a gnosys-tool fence into { tool, args }.
|
|
60
|
+
*
|
|
61
|
+
* Schema:
|
|
62
|
+
* tool: <name> # required
|
|
63
|
+
* <param>: <value> # zero or more
|
|
64
|
+
*
|
|
65
|
+
* Whitespace and trailing punctuation are tolerated. Comments (lines
|
|
66
|
+
* starting with `#`) are ignored.
|
|
67
|
+
*/
|
|
68
|
+
export function parseToolBody(body) {
|
|
69
|
+
const lines = body.replace(/\r\n/g, "\n").split("\n");
|
|
70
|
+
let tool = "";
|
|
71
|
+
const args = {};
|
|
72
|
+
for (const raw of lines) {
|
|
73
|
+
const line = raw.trim();
|
|
74
|
+
if (!line || line.startsWith("#"))
|
|
75
|
+
continue;
|
|
76
|
+
const m = line.match(/^([a-z_][a-z0-9_-]*)\s*:\s*(.+?)\s*$/i);
|
|
77
|
+
if (!m)
|
|
78
|
+
continue;
|
|
79
|
+
const key = m[1];
|
|
80
|
+
const value = m[2];
|
|
81
|
+
if (key.toLowerCase() === "tool") {
|
|
82
|
+
tool = value;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
args[key] = value;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return { tool, args };
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=toolFence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolFence.js","sourceRoot":"","sources":["../../../src/lib/chat/toolFence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat-side tool catalog.
|
|
3
|
+
*
|
|
4
|
+
* The LLM in `gnosys chat` can call gnosys functions directly via a fenced
|
|
5
|
+
* protocol (gnosys-tool). Each tool is a small read-only query into the
|
|
6
|
+
* central DB; the result is injected back into the conversation as a system
|
|
7
|
+
* turn before the LLM's next response.
|
|
8
|
+
*
|
|
9
|
+
* Why a fenced protocol instead of native tool_use APIs:
|
|
10
|
+
* - Provider-agnostic: works with Anthropic, OpenAI, Groq, Ollama, LM Studio,
|
|
11
|
+
* and anything that streams plain text. Same approach as gnosys-choose.
|
|
12
|
+
* - Same in-process function calls the MCP server uses internally — no MCP
|
|
13
|
+
* roundtrip, no schema duplication.
|
|
14
|
+
* - The model can chain tool calls naturally (call list_projects, then
|
|
15
|
+
* briefing on a name) because each tool result is a normal turn.
|
|
16
|
+
*
|
|
17
|
+
* Format the model emits:
|
|
18
|
+
*
|
|
19
|
+
* ```gnosys-tool
|
|
20
|
+
* tool: list_projects
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ```gnosys-tool
|
|
24
|
+
* tool: search
|
|
25
|
+
* query: ULID encoding
|
|
26
|
+
* limit: 5
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* ```gnosys-tool
|
|
30
|
+
* tool: read
|
|
31
|
+
* id: deci-037
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* The fence syntax is parsed by toolFence.ts.
|
|
35
|
+
*/
|
|
36
|
+
export interface ToolDefinition {
|
|
37
|
+
name: string;
|
|
38
|
+
description: string;
|
|
39
|
+
/** Parameter names + brief descriptions, shown in the system prompt. */
|
|
40
|
+
params: Record<string, string>;
|
|
41
|
+
/** Run the tool. Returns a markdown string for injection as a system turn. */
|
|
42
|
+
run: (args: Record<string, string>) => Promise<string>;
|
|
43
|
+
}
|
|
44
|
+
export declare function findTool(name: string): ToolDefinition | undefined;
|
|
45
|
+
export declare function listTools(): ToolDefinition[];
|
|
46
|
+
/** System prompt addendum that teaches the LLM the tool-fence syntax. */
|
|
47
|
+
export declare function buildToolsSystemPrompt(): string;
|
|
48
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/lib/chat/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAOH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,8EAA8E;IAC9E,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACxD;AA2PD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEjE;AAED,wBAAgB,SAAS,IAAI,cAAc,EAAE,CAE5C;AAED,yEAAyE;AACzE,wBAAgB,sBAAsB,IAAI,MAAM,CAuB/C"}
|