freeturtle 0.1.37 → 0.1.39
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 +14 -8
- package/dist/bin/freeturtle.js +22 -2
- package/dist/bin/freeturtle.js.map +1 -1
- package/dist/src/cli/connect-database.js +10 -0
- package/dist/src/cli/connect-database.js.map +1 -1
- package/dist/src/cli/connect-farcaster.js +10 -0
- package/dist/src/cli/connect-farcaster.js.map +1 -1
- package/dist/src/cli/connect-github.js +11 -0
- package/dist/src/cli/connect-github.js.map +1 -1
- package/dist/src/cli/connect-gmail.js +10 -0
- package/dist/src/cli/connect-gmail.js.map +1 -1
- package/dist/src/cli/connect-onchain.js +10 -0
- package/dist/src/cli/connect-onchain.js.map +1 -1
- package/dist/src/cli/connect-telegram.js +8 -0
- package/dist/src/cli/connect-telegram.js.map +1 -1
- package/dist/src/cli/connect-web-search.js +8 -0
- package/dist/src/cli/connect-web-search.js.map +1 -1
- package/dist/src/cli/daemon-utils.d.ts +6 -0
- package/dist/src/cli/daemon-utils.js +21 -5
- package/dist/src/cli/daemon-utils.js.map +1 -1
- package/dist/src/cli/init.js +210 -85
- package/dist/src/cli/init.js.map +1 -1
- package/dist/src/cli/intake.d.ts +8 -5
- package/dist/src/cli/intake.js +178 -20
- package/dist/src/cli/intake.js.map +1 -1
- package/dist/src/config.js +8 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/config.test.js +29 -0
- package/dist/src/config.test.js.map +1 -1
- package/dist/src/daemon.d.ts +9 -0
- package/dist/src/daemon.js +119 -0
- package/dist/src/daemon.js.map +1 -1
- package/dist/src/memory.d.ts +11 -0
- package/dist/src/memory.js +161 -2
- package/dist/src/memory.js.map +1 -1
- package/dist/src/memory.test.d.ts +1 -0
- package/dist/src/memory.test.js +109 -0
- package/dist/src/memory.test.js.map +1 -0
- package/dist/src/modules/farcaster/client.d.ts +3 -0
- package/dist/src/modules/farcaster/client.js +45 -0
- package/dist/src/modules/farcaster/client.js.map +1 -1
- package/dist/src/modules/farcaster/index.js +62 -0
- package/dist/src/modules/farcaster/index.js.map +1 -1
- package/dist/src/modules/farcaster/tools.js +60 -0
- package/dist/src/modules/farcaster/tools.js.map +1 -1
- package/dist/src/modules/github/client.d.ts +6 -0
- package/dist/src/modules/github/client.js +13 -0
- package/dist/src/modules/github/client.js.map +1 -1
- package/dist/src/modules/github/index.js +4 -0
- package/dist/src/modules/github/index.js.map +1 -1
- package/dist/src/modules/github/tools.js +22 -0
- package/dist/src/modules/github/tools.js.map +1 -1
- package/dist/src/modules/workspace/index.d.ts +5 -0
- package/dist/src/modules/workspace/index.js +59 -0
- package/dist/src/modules/workspace/index.js.map +1 -1
- package/dist/src/modules/workspace/tools.js +50 -0
- package/dist/src/modules/workspace/tools.js.map +1 -1
- package/dist/src/policy.d.ts +12 -7
- package/dist/src/policy.js +19 -13
- package/dist/src/policy.js.map +1 -1
- package/dist/src/policy.test.js +71 -1
- package/dist/src/policy.test.js.map +1 -1
- package/dist/src/runner.js +19 -2
- package/dist/src/runner.js.map +1 -1
- package/dist/src/scheduler.js +13 -2
- package/dist/src/scheduler.js.map +1 -1
- package/package.json +1 -1
package/dist/src/cli/intake.js
CHANGED
|
@@ -26,43 +26,201 @@ export function redactSecrets(text) {
|
|
|
26
26
|
}
|
|
27
27
|
return result;
|
|
28
28
|
}
|
|
29
|
+
const GENERATION_SYSTEM_PROMPT = `You are generating a soul.md file for a FreeTurtle CEO — an autonomous AI agent that will operate a project. The soul.md is the CEO's complete identity: how it thinks, talks, what it knows, what it cares about, and where its authority ends.
|
|
30
|
+
|
|
31
|
+
A good soul produces a CEO with genuine personality. A bad soul produces a generic chatbot with a project name stapled on. Your job is to produce a good one.
|
|
32
|
+
|
|
33
|
+
## What You Have
|
|
34
|
+
|
|
35
|
+
You'll receive:
|
|
36
|
+
1. Interview answers from the founder (CEO name, project info, voice preference, off-limits topics, escalation boundaries)
|
|
37
|
+
2. A data dump of project documents (optional but usually present — could include READMEs, pitch decks, strategy docs, lightpapers, existing SOUL files, etc.)
|
|
38
|
+
|
|
39
|
+
## How to Use the Data Dump
|
|
40
|
+
|
|
41
|
+
The data dump is your richest source. Extract aggressively:
|
|
42
|
+
|
|
43
|
+
- **Project identity and mission** → Identity section, Knowledge section
|
|
44
|
+
- **How the project talks about itself** → Voice calibration (match the energy of their own docs — a project with dry, technical docs gets a dry, technical CEO)
|
|
45
|
+
- **What the project believes** → Philosophical Stance (pitch docs ALWAYS contain this — "X is broken, we fix it by Y" is a worldview)
|
|
46
|
+
- **Technical details, metrics, traction** → Knowledge section
|
|
47
|
+
- **Strategy and goals** → Goals, Strategic Thinking
|
|
48
|
+
- **Terminology they enforce** → Knowledge section (always include a terminology block if the project has specific naming conventions)
|
|
49
|
+
- **What they explicitly say they're NOT** → Knowledge "what it's not" block
|
|
50
|
+
|
|
51
|
+
If the data dump references a specific existing voice or personality (like an existing SOUL.md from another system), use it as heavy inspiration but rewrite for the FreeTurtle format.
|
|
52
|
+
|
|
53
|
+
## Voice Generation Rules
|
|
54
|
+
|
|
55
|
+
The voice section is the most important part. Do NOT produce vague descriptions. Every voice must have:
|
|
56
|
+
|
|
57
|
+
1. **Specific constraints** — not "be brief" but "1-2 sentences per post, lowercase default, no emojis"
|
|
58
|
+
2. **A character hook** — what makes this CEO recognizable? What's the human analog? "Late-night radio DJ" is good. "Professional and friendly" is useless.
|
|
59
|
+
3. **Real examples** — generate 3-5 example posts this CEO would actually write, grounded in the project's domain. These must feel authentic, not templated.
|
|
60
|
+
4. **Anti-examples** — generate 3-5 things this CEO would NEVER say. Include both generic AI-speak ("🚀 Exciting update!") and project-specific bad patterns.
|
|
61
|
+
|
|
62
|
+
Use the founder's voice preference answer as the seed, but let the data dump refine it. A founder who says "sharp and dry" but whose docs are warm and community-focused should get a CEO that bridges both.
|
|
63
|
+
|
|
64
|
+
## Philosophical Stance Rules
|
|
65
|
+
|
|
66
|
+
Do NOT invent philosophy. Extract it from the data dump. Almost every project has a thesis — "streaming is broken," "AI agents are black boxes," "NFTs should be identity not speculation." Find it and articulate it as 3-5 belief statements.
|
|
67
|
+
|
|
68
|
+
If the data dump is truly thin, extrapolate from the project description: what problem does this solve? What must be true about the world for this project to matter?
|
|
69
|
+
|
|
70
|
+
## Section Completeness
|
|
71
|
+
|
|
72
|
+
Every section in the template must be populated. If a section can't be filled from the data dump, use reasonable defaults based on the project stage and domain. Never leave a section with placeholder text like "[to be filled in]" — generate something real that the founder can edit later.
|
|
73
|
+
|
|
74
|
+
## Quality Check
|
|
75
|
+
|
|
76
|
+
Before outputting, ask yourself:
|
|
77
|
+
- Could someone read this soul and predict what the CEO would post about a random topic in its domain? If not, the voice is too vague.
|
|
78
|
+
- Does the Philosophical Stance feel like this specific project, or could it apply to any project? If generic, dig deeper into the data dump.
|
|
79
|
+
- Are the example posts something you'd actually see on Farcaster/Twitter, or do they read like a template? If templated, rewrite.
|
|
80
|
+
- Would the founder read this and think "yeah, that's my project's personality" or "this is just AI-generated filler"? Aim for the former.
|
|
81
|
+
|
|
82
|
+
## Output Format
|
|
83
|
+
|
|
84
|
+
## CORE / MUTABLE Tags
|
|
85
|
+
|
|
86
|
+
The soul.md uses HTML comment markers to tag sections as immutable or mutable:
|
|
87
|
+
- \`<!-- CORE -->\` ... \`<!-- /CORE -->\`: Sections the agent can NEVER modify (Identity, Values & Boundaries)
|
|
88
|
+
- \`<!-- MUTABLE -->\` ... \`<!-- /MUTABLE -->\`: Sections the agent can propose changes to (Voice, Philosophical Stance, Knowledge, Goals, Content & Posting, Strategic Thinking, Continuity)
|
|
89
|
+
|
|
90
|
+
You MUST include these tags in the output. Wrap the Identity and Values & Boundaries sections in CORE tags. Wrap all other sections in MUTABLE tags. Place the opening tag on its own line before the section heading and the closing tag on its own line after the section content.
|
|
91
|
+
|
|
92
|
+
## Output Format
|
|
93
|
+
|
|
94
|
+
Output ONLY the soul.md content in markdown. No preamble, no explanation, no "here's your soul file." Just the markdown document, starting with the Identity section (the # heading will be added automatically).`;
|
|
29
95
|
/**
|
|
30
|
-
*
|
|
96
|
+
* Generate a rich soul.md via LLM from founder interview answers and optional data dump.
|
|
31
97
|
*/
|
|
32
98
|
export async function condenseDocs(businessContext, identity, llm, contracts) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
99
|
+
// Build the voice description
|
|
100
|
+
const VOICE_LABELS = {
|
|
101
|
+
sharp: "Sharp and dry — says more with less, builder energy, no fluff",
|
|
102
|
+
warm: "Warm and community-focused — welcoming, encouraging, people-first",
|
|
103
|
+
philosophical: "Philosophical and thoughtful — big-picture thinker, connects dots, observational",
|
|
104
|
+
technical: "Technical and precise — engineering-minded, detail-oriented, shows its work",
|
|
105
|
+
};
|
|
106
|
+
const voiceDesc = identity.voice.startsWith("custom:")
|
|
107
|
+
? identity.voice.slice(8)
|
|
108
|
+
: (VOICE_LABELS[identity.voice] ?? identity.voice);
|
|
109
|
+
let userContent = `## Founder Interview Answers
|
|
110
|
+
|
|
111
|
+
**CEO Name:** ${identity.ceoName}
|
|
112
|
+
**Project:** ${identity.projectName}
|
|
113
|
+
**Description:** ${identity.description}
|
|
114
|
+
**Founder:** ${identity.founderName}
|
|
115
|
+
**Voice preference:** ${voiceDesc}
|
|
116
|
+
**Off-limits topics:** ${identity.offLimits || "(none specified)"}
|
|
117
|
+
**Escalation triggers:** ${identity.escalation || "(none specified — use sensible defaults)"}
|
|
118
|
+
${contracts && contracts.length > 0 ? `**Smart contracts on Base:**\n${contracts.map((c) => `- ${c.name}: ${c.address}`).join("\n")}\n` : ""}
|
|
119
|
+
## Target Template
|
|
39
120
|
|
|
40
|
-
|
|
121
|
+
Generate a soul.md with exactly these sections (include the CORE/MUTABLE comment tags exactly as shown):
|
|
41
122
|
|
|
42
|
-
${
|
|
43
|
-
${contracts && contracts.length > 0 ? `\nSmart contracts on Base:\n${contracts.map((c) => `- ${c.name}: ${c.address}`).join("\n")}\n` : ""}
|
|
44
|
-
Produce these markdown sections:
|
|
123
|
+
# ${identity.ceoName} — Soul
|
|
45
124
|
|
|
125
|
+
<!-- CORE -->
|
|
46
126
|
## Identity
|
|
47
|
-
[2-3
|
|
127
|
+
[2-3 paragraphs. WHO is this CEO? What project does it operate? What does it actually do day-to-day? What's its relationship to the founder? Is it openly AI?]
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
<!-- /CORE -->
|
|
48
131
|
|
|
132
|
+
<!-- MUTABLE -->
|
|
49
133
|
## Voice
|
|
50
|
-
[
|
|
134
|
+
[1 paragraph describing the overall tone — not just adjectives but a characterization. What does it sound like? What's the closest human analog?]
|
|
135
|
+
|
|
136
|
+
**Tone markers:**
|
|
137
|
+
[5-8 specific, enforceable rules about capitalization, punctuation, emojis, length, humor, formality]
|
|
138
|
+
|
|
139
|
+
**Examples of voice:**
|
|
140
|
+
[3-5 example posts/messages this CEO would actually write, grounded in the project domain]
|
|
141
|
+
|
|
142
|
+
**What you would never say:**
|
|
143
|
+
[3-5 anti-examples reflecting both the voice AND the project domain]
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Philosophical Stance
|
|
148
|
+
[3-5 belief statements, each as a bolded header + 2-3 sentence explanation. EXTRACTED from the data dump or extrapolated from the project description.]
|
|
149
|
+
|
|
150
|
+
---
|
|
51
151
|
|
|
52
152
|
## Knowledge
|
|
53
|
-
|
|
153
|
+
|
|
154
|
+
**What ${identity.projectName} is:**
|
|
155
|
+
[Bullet list of facts about the project — what it does, how it works, key technical details, traction/metrics, terminology]
|
|
156
|
+
|
|
157
|
+
**What ${identity.projectName} is not:**
|
|
158
|
+
[Common misconceptions or adjacent things to distinguish from]
|
|
159
|
+
|
|
160
|
+
---
|
|
54
161
|
|
|
55
162
|
## Goals
|
|
56
|
-
[3-7 specific goals extracted from the business context]
|
|
57
163
|
|
|
164
|
+
**Primary:** [One sentence — the CEO's north star]
|
|
165
|
+
|
|
166
|
+
**How that breaks down:**
|
|
167
|
+
[3-5 numbered sub-goals appropriate to the project's stage]
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Content & Posting
|
|
172
|
+
|
|
173
|
+
**What to post about:**
|
|
174
|
+
[5-7 content categories specific to THIS project's domain]
|
|
175
|
+
|
|
176
|
+
**What not to post about:**
|
|
177
|
+
[From off-limits topics + inferred from domain. Always include: don't promise unshipped features, don't speak for the founder, don't engage trolls]
|
|
178
|
+
|
|
179
|
+
**Posting rules:**
|
|
180
|
+
[6-8 operational rules including length preference, no-repeat check, silence > filler]
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
<!-- /MUTABLE -->
|
|
184
|
+
|
|
185
|
+
<!-- CORE -->
|
|
58
186
|
## Values & Boundaries
|
|
59
|
-
[3-5 real values/constraints from the context, plus "Escalate to the founder when unsure"]
|
|
60
187
|
|
|
61
|
-
|
|
62
|
-
[
|
|
63
|
-
|
|
188
|
+
**Do:**
|
|
189
|
+
[5-7 positive behaviors including: have opinions, be helpful, acknowledge limitations, engage genuinely]
|
|
190
|
+
|
|
191
|
+
**Do not:**
|
|
192
|
+
[5-7 prohibitions from off-limits topics + standard safety. Always include: don't pretend to be human, don't overhype, don't make financial claims]
|
|
193
|
+
|
|
194
|
+
**Escalation triggers (always check with ${identity.founderName}):**
|
|
195
|
+
[From the escalation answer + sensible defaults: partnerships, public commitments, press inquiries, anything financial]
|
|
196
|
+
<!-- /CORE -->
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
<!-- MUTABLE -->
|
|
201
|
+
## Strategic Thinking
|
|
202
|
+
[2-4 strategic frames relevant to this project's stage and domain]
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Continuity
|
|
207
|
+
|
|
208
|
+
You wake up fresh each session. Your memory files are your continuity.
|
|
209
|
+
Read them. Update them. They're how you persist across sessions.
|
|
210
|
+
If you change this file, tell ${identity.founderName}.
|
|
211
|
+
<!-- /MUTABLE -->`;
|
|
212
|
+
if (businessContext) {
|
|
213
|
+
userContent += `\n\n## Data Dump (founder-provided docs)\n\n${businessContext}`;
|
|
214
|
+
}
|
|
215
|
+
const response = await llm.chat(GENERATION_SYSTEM_PROMPT, [
|
|
64
216
|
{ role: "user", content: userContent },
|
|
65
217
|
]);
|
|
66
|
-
|
|
218
|
+
// The LLM should output starting with ## Identity. Prepend the heading.
|
|
219
|
+
const text = response.text.trim();
|
|
220
|
+
// If the LLM already included the # heading, use as-is; otherwise prepend it
|
|
221
|
+
if (text.startsWith(`# ${identity.ceoName}`)) {
|
|
222
|
+
return text;
|
|
223
|
+
}
|
|
224
|
+
return `# ${identity.ceoName} — Soul\n\n${text}`;
|
|
67
225
|
}
|
|
68
226
|
//# sourceMappingURL=intake.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intake.js","sourceRoot":"","sources":["../../../src/cli/intake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGrD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,OAAO,IAAI,kBAAkB,EAAE,CAAC;QACzC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"intake.js","sourceRoot":"","sources":["../../../src/cli/intake.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config.js
CHANGED
|
@@ -98,6 +98,14 @@ function parseConfig(raw) {
|
|
|
98
98
|
policyRaw[currentSubSection][key] = parseValue(value);
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
+
// Filter out disabled cron tasks — "disabled" is not a valid cron expression
|
|
102
|
+
// and will crash Croner if passed through.
|
|
103
|
+
for (const [name, task] of Object.entries(config.cron)) {
|
|
104
|
+
const sched = task.schedule.trim().toLowerCase();
|
|
105
|
+
if (!sched || sched === "disabled" || sched === "none" || sched === "off") {
|
|
106
|
+
delete config.cron[name];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
101
109
|
config.policy = parsePolicy(policyRaw);
|
|
102
110
|
return config;
|
|
103
111
|
}
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAqB,WAAW,EAAE,MAAM,aAAa,CAAC;AA2C7D,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9F,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,wCAAwC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAChH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,SAAS,GAAqD,EAAE,CAAC;IAEvE,MAAM,MAAM,GAAqB;QAC/B,GAAG,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAE;QAC7E,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE;QAClD,IAAI,EAAE,EAAE;QACR,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACzB,MAAM,EAAE,SAAoC,EAAE,oBAAoB;KACnE,CAAC;IAEF,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,oBAAoB;QACpB,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE,CAAC;YACjB,cAAc,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,iBAAiB,GAAG,IAAI,CAAC;YACzB,SAAS;QACX,CAAC;QAED,wBAAwB;QACxB,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9C,SAAS;QACX,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc;YAAE,SAAS;QAE1C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhC,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;YAC7B,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACL,MAAM,CAAC,GAAuC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC/D,CAAC;QACH,CAAC;aAAM,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;YAC1C,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;YAC9C,CAAC;iBAAM,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;gBACtC,MAAM,CAAC,SAAS,CAAC,gBAAgB,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,IAAI,cAAc,KAAK,MAAM,IAAI,iBAAiB,EAAE,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YAChE,CAAC;YACA,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAA4B,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1E,CAAC;aAAM,IAAI,cAAc,KAAK,UAAU,IAAI,iBAAiB,EAAE,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC1D,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,cAAc,KAAK,SAAS,IAAI,iBAAiB,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACzD,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC;YAC3C,CAAC;iBAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBAChC,MAAM,CAAC,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;aAAM,IAAI,cAAc,KAAK,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YAC5D,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;YACpC,CAAC;YACD,SAAS,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/src/config.test.js
CHANGED
|
@@ -30,5 +30,34 @@ describe("loadConfig", () => {
|
|
|
30
30
|
const config = await loadConfig(dir);
|
|
31
31
|
expect(config.heartbeat.enabled).toBe(false);
|
|
32
32
|
});
|
|
33
|
+
it("filters out disabled cron tasks", async () => {
|
|
34
|
+
const { writeFile } = await import("node:fs/promises");
|
|
35
|
+
const { join } = await import("node:path");
|
|
36
|
+
await writeFile(join(dir, "config.md"), [
|
|
37
|
+
"# Config",
|
|
38
|
+
"## LLM",
|
|
39
|
+
"- provider: claude_api",
|
|
40
|
+
"- model: claude-sonnet-4-20250514",
|
|
41
|
+
"",
|
|
42
|
+
"## Cron",
|
|
43
|
+
"### post",
|
|
44
|
+
"- schedule: disabled",
|
|
45
|
+
"- prompt: Post something",
|
|
46
|
+
"### active",
|
|
47
|
+
"- schedule: 0 */6 * * *",
|
|
48
|
+
"- prompt: Do something",
|
|
49
|
+
"### off_task",
|
|
50
|
+
"- schedule: off",
|
|
51
|
+
"- prompt: Should be skipped",
|
|
52
|
+
"",
|
|
53
|
+
"## Heartbeat",
|
|
54
|
+
"- enabled: false",
|
|
55
|
+
].join("\n"), "utf-8");
|
|
56
|
+
const config = await loadConfig(dir);
|
|
57
|
+
expect(config.cron.post).toBeUndefined();
|
|
58
|
+
expect(config.cron.off_task).toBeUndefined();
|
|
59
|
+
expect(config.cron.active).toBeDefined();
|
|
60
|
+
expect(config.cron.active.schedule).toBe("0 */6 * * *");
|
|
61
|
+
});
|
|
33
62
|
});
|
|
34
63
|
//# sourceMappingURL=config.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,GAAW,CAAC;IAChB,IAAI,OAA4B,CAAC;IAEjC,UAAU,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,SAAS,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC9C,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC;QACpB,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/config.test.ts"],"names":[],"mappings":"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"}
|
package/dist/src/daemon.d.ts
CHANGED
|
@@ -9,14 +9,23 @@ export declare class FreeTurtleDaemon {
|
|
|
9
9
|
private heartbeat?;
|
|
10
10
|
private channels;
|
|
11
11
|
private runner?;
|
|
12
|
+
private llmClient?;
|
|
12
13
|
private rpcServer?;
|
|
13
14
|
private webhookServer?;
|
|
14
15
|
private shuttingDown;
|
|
15
16
|
private messageQueue;
|
|
16
17
|
private watchdogTimer?;
|
|
18
|
+
private currentConfig?;
|
|
17
19
|
constructor(dir: string, options?: DaemonOptions);
|
|
18
20
|
start(): Promise<void>;
|
|
19
21
|
stop(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Hot-reload: re-reads .env, config.md, modules, and restarts scheduler/heartbeat
|
|
24
|
+
* without restarting the entire daemon process.
|
|
25
|
+
*/
|
|
26
|
+
reloadConfig(): Promise<{
|
|
27
|
+
reloaded: string[];
|
|
28
|
+
}>;
|
|
20
29
|
private handleRpc;
|
|
21
30
|
private maybeRefreshOpenAIOAuthToken;
|
|
22
31
|
private syncOpenAIOAuthFromStore;
|
package/dist/src/daemon.js
CHANGED
|
@@ -43,11 +43,13 @@ export class FreeTurtleDaemon {
|
|
|
43
43
|
heartbeat;
|
|
44
44
|
channels = [];
|
|
45
45
|
runner;
|
|
46
|
+
llmClient;
|
|
46
47
|
rpcServer;
|
|
47
48
|
webhookServer;
|
|
48
49
|
shuttingDown = false;
|
|
49
50
|
messageQueue = Promise.resolve("");
|
|
50
51
|
watchdogTimer;
|
|
52
|
+
currentConfig;
|
|
51
53
|
constructor(dir, options = {}) {
|
|
52
54
|
this.dir = dir;
|
|
53
55
|
this.options = options;
|
|
@@ -59,6 +61,7 @@ export class FreeTurtleDaemon {
|
|
|
59
61
|
const env = process.env;
|
|
60
62
|
// Load config
|
|
61
63
|
const config = await loadConfig(this.dir);
|
|
64
|
+
this.currentConfig = config;
|
|
62
65
|
this.logger.info("Config loaded");
|
|
63
66
|
// Create LLM client
|
|
64
67
|
const provider = (config.llm.provider ?? "claude_api");
|
|
@@ -92,6 +95,7 @@ export class FreeTurtleDaemon {
|
|
|
92
95
|
[credField]: credential,
|
|
93
96
|
baseUrl: config.llm.base_url,
|
|
94
97
|
});
|
|
98
|
+
this.llmClient = llm;
|
|
95
99
|
this.logger.info(`LLM: ${provider} / ${config.llm.model}`);
|
|
96
100
|
// Load modules (pass policy for allowlist enforcement)
|
|
97
101
|
const modules = await loadModules(config, env, this.logger, config.policy, this.dir);
|
|
@@ -335,6 +339,98 @@ export class FreeTurtleDaemon {
|
|
|
335
339
|
}
|
|
336
340
|
this.logger.info("FreeTurtle stopped");
|
|
337
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* Hot-reload: re-reads .env, config.md, modules, and restarts scheduler/heartbeat
|
|
344
|
+
* without restarting the entire daemon process.
|
|
345
|
+
*/
|
|
346
|
+
async reloadConfig() {
|
|
347
|
+
const reloaded = [];
|
|
348
|
+
// Re-read .env into process.env so new tokens are picked up
|
|
349
|
+
loadDotenv({ path: join(this.dir, ".env"), override: true });
|
|
350
|
+
const env = process.env;
|
|
351
|
+
const newConfig = await loadConfig(this.dir);
|
|
352
|
+
const oldConfig = this.currentConfig;
|
|
353
|
+
this.currentConfig = newConfig;
|
|
354
|
+
// Reload modules if module config or env changed
|
|
355
|
+
// (Always reload — cheap operation, ensures new env vars are picked up)
|
|
356
|
+
const oldModules = JSON.stringify(oldConfig?.modules ?? {});
|
|
357
|
+
const newModules = JSON.stringify(newConfig.modules);
|
|
358
|
+
const modulesChanged = oldModules !== newModules;
|
|
359
|
+
// Always reload modules to pick up new env vars (e.g. after `connect github`)
|
|
360
|
+
try {
|
|
361
|
+
const modules = await loadModules(newConfig, env, this.logger, newConfig.policy, this.dir);
|
|
362
|
+
const skills = await loadSkills(this.dir, newConfig.skills, this.logger);
|
|
363
|
+
const sendToChannels = (msg) => {
|
|
364
|
+
for (const ch of this.channels) {
|
|
365
|
+
ch.send(msg).catch((err) => {
|
|
366
|
+
this.logger.error(`Failed to send via ${ch.name}: ${err}`);
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
};
|
|
370
|
+
this.runner = new TaskRunner(this.dir, this.llmClient, modules, this.logger, {
|
|
371
|
+
policy: newConfig.policy,
|
|
372
|
+
skills,
|
|
373
|
+
onApprovalNeeded: (msg) => {
|
|
374
|
+
this.logger.info(`Approval notification: ${msg.slice(0, 100)}`);
|
|
375
|
+
sendToChannels(msg);
|
|
376
|
+
},
|
|
377
|
+
onFollowup: (msg) => {
|
|
378
|
+
this.logger.info(`Followup: ${msg.slice(0, 100)}`);
|
|
379
|
+
sendToChannels(msg);
|
|
380
|
+
},
|
|
381
|
+
});
|
|
382
|
+
reloaded.push("modules");
|
|
383
|
+
this.logger.info(`Modules reloaded: ${modules.map((m) => m.name).join(", ")}`);
|
|
384
|
+
}
|
|
385
|
+
catch (err) {
|
|
386
|
+
const msg = err instanceof Error ? err.message : "Unknown error";
|
|
387
|
+
this.logger.error(`Failed to reload modules: ${msg}`);
|
|
388
|
+
}
|
|
389
|
+
// Reload scheduler if cron changed
|
|
390
|
+
const oldCron = JSON.stringify(oldConfig?.cron ?? {});
|
|
391
|
+
const newCron = JSON.stringify(newConfig.cron);
|
|
392
|
+
if (oldCron !== newCron) {
|
|
393
|
+
this.scheduler?.stop();
|
|
394
|
+
if (Object.keys(newConfig.cron).length > 0 && this.runner) {
|
|
395
|
+
this.scheduler = new Scheduler(newConfig.cron, this.runner, this.logger);
|
|
396
|
+
this.scheduler.start();
|
|
397
|
+
reloaded.push("scheduler");
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
this.scheduler = undefined;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
// Reload heartbeat if changed
|
|
404
|
+
const oldHb = JSON.stringify(oldConfig?.heartbeat ?? {});
|
|
405
|
+
const newHb = JSON.stringify(newConfig.heartbeat);
|
|
406
|
+
if (oldHb !== newHb) {
|
|
407
|
+
this.heartbeat?.stop();
|
|
408
|
+
if (newConfig.heartbeat.enabled && this.runner) {
|
|
409
|
+
this.heartbeat = new Heartbeat(this.runner, this.logger, {
|
|
410
|
+
intervalMs: newConfig.heartbeat.interval_minutes * 60 * 1000,
|
|
411
|
+
onAlert: (msg) => {
|
|
412
|
+
for (const ch of this.channels) {
|
|
413
|
+
ch.send(msg).catch((err) => {
|
|
414
|
+
this.logger.error(`Failed to send alert via ${ch.name}: ${err}`);
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
});
|
|
419
|
+
this.heartbeat.start();
|
|
420
|
+
reloaded.push("heartbeat");
|
|
421
|
+
}
|
|
422
|
+
else {
|
|
423
|
+
this.heartbeat = undefined;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
if (reloaded.length > 0) {
|
|
427
|
+
this.logger.info(`Config reloaded: ${reloaded.join(", ")}`);
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
this.logger.info("Config reloaded (no changes detected)");
|
|
431
|
+
}
|
|
432
|
+
return { reloaded };
|
|
433
|
+
}
|
|
338
434
|
async handleRpc(method, params) {
|
|
339
435
|
switch (method) {
|
|
340
436
|
case "status":
|
|
@@ -385,6 +481,29 @@ export class FreeTurtleDaemon {
|
|
|
385
481
|
throw new Error("Runner not initialized");
|
|
386
482
|
return await this.runner.getApprovalManager().list("pending");
|
|
387
483
|
}
|
|
484
|
+
case "reload":
|
|
485
|
+
return await this.reloadConfig();
|
|
486
|
+
case "restart":
|
|
487
|
+
// Spawn a new daemon, then exit this one.
|
|
488
|
+
// The new process is fully detached so it survives our exit.
|
|
489
|
+
this.logger.info("Self-restart requested via RPC");
|
|
490
|
+
void (async () => {
|
|
491
|
+
try {
|
|
492
|
+
const { startDaemonDelayed } = await import("./cli/daemon-utils.js");
|
|
493
|
+
// Let the RPC response reach the caller
|
|
494
|
+
await new Promise((r) => setTimeout(r, 500));
|
|
495
|
+
// Schedule new daemon to start after a delay (gives old process time to fully exit)
|
|
496
|
+
startDaemonDelayed(this.dir, 2);
|
|
497
|
+
this.logger.info("New daemon scheduled, stopping old process");
|
|
498
|
+
await this.stop();
|
|
499
|
+
process.exit(0);
|
|
500
|
+
}
|
|
501
|
+
catch (err) {
|
|
502
|
+
this.logger.error(`Self-restart failed: ${err}`);
|
|
503
|
+
process.exit(1);
|
|
504
|
+
}
|
|
505
|
+
})();
|
|
506
|
+
return { restarting: true };
|
|
388
507
|
case "stop":
|
|
389
508
|
this.stop().then(() => process.exit(0)).catch((e) => {
|
|
390
509
|
this.logger.error(`Stop error: ${e}`);
|
package/dist/src/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../src/daemon.ts"],"names":[],"mappings":"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"}
|
package/dist/src/memory.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
1
|
export declare function readMemoryFile(dir: string, filename: string): Promise<string | null>;
|
|
2
2
|
export declare function writeMemoryFile(dir: string, filename: string, content: string): Promise<void>;
|
|
3
3
|
export declare function appendToJsonArray(dir: string, filename: string, entry: unknown): Promise<void>;
|
|
4
|
+
export declare function appendDailyMemory(dir: string, content: string): Promise<void>;
|
|
5
|
+
export declare function loadRecentDailyMemory(dir: string, days?: number): Promise<string>;
|
|
6
|
+
export interface MemorySearchResult {
|
|
7
|
+
file: string;
|
|
8
|
+
snippet: string;
|
|
9
|
+
line: number;
|
|
10
|
+
score: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function searchMemory(dir: string, query: string, options?: {
|
|
13
|
+
maxResults?: number;
|
|
14
|
+
}): Promise<MemorySearchResult[]>;
|