@oratis/lisa 0.8.0 → 0.11.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 +123 -16
- package/README.zh-CN.md +101 -15
- package/completions/_lisa +56 -0
- package/completions/lisa.bash +35 -1
- package/completions/lisa.fish +18 -1
- package/dist/advisor/engine.d.ts +7 -0
- package/dist/advisor/engine.d.ts.map +1 -1
- package/dist/advisor/engine.js +12 -0
- package/dist/advisor/engine.js.map +1 -1
- package/dist/agent.d.ts +14 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +58 -7
- package/dist/agent.js.map +1 -1
- package/dist/agents/managed.d.ts +108 -0
- package/dist/agents/managed.d.ts.map +1 -0
- package/dist/agents/managed.js +241 -0
- package/dist/agents/managed.js.map +1 -0
- package/dist/agents/pty.d.ts +155 -0
- package/dist/agents/pty.d.ts.map +1 -0
- package/dist/agents/pty.js +299 -0
- package/dist/agents/pty.js.map +1 -0
- package/dist/approval.d.ts +13 -0
- package/dist/approval.d.ts.map +1 -1
- package/dist/approval.js +25 -2
- package/dist/approval.js.map +1 -1
- package/dist/autonomy/runs.d.ts +33 -0
- package/dist/autonomy/runs.d.ts.map +1 -0
- package/dist/autonomy/runs.js +106 -0
- package/dist/autonomy/runs.js.map +1 -0
- package/dist/channels/feishu.d.ts.map +1 -1
- package/dist/channels/feishu.js +65 -0
- package/dist/channels/feishu.js.map +1 -1
- package/dist/channels/router.d.ts +7 -0
- package/dist/channels/router.d.ts.map +1 -1
- package/dist/channels/router.js +1 -1
- package/dist/channels/router.js.map +1 -1
- package/dist/cli/agents-pty.d.ts +18 -0
- package/dist/cli/agents-pty.d.ts.map +1 -0
- package/dist/cli/agents-pty.js +182 -0
- package/dist/cli/agents-pty.js.map +1 -0
- package/dist/cli/agents.d.ts +2 -0
- package/dist/cli/agents.d.ts.map +1 -0
- package/dist/cli/agents.js +65 -0
- package/dist/cli/agents.js.map +1 -0
- package/dist/cli/consent.d.ts +2 -0
- package/dist/cli/consent.d.ts.map +1 -0
- package/dist/cli/consent.js +57 -0
- package/dist/cli/consent.js.map +1 -0
- package/dist/cli/model.d.ts +2 -0
- package/dist/cli/model.d.ts.map +1 -0
- package/dist/cli/model.js +121 -0
- package/dist/cli/model.js.map +1 -0
- package/dist/cli/sense.d.ts +2 -0
- package/dist/cli/sense.d.ts.map +1 -0
- package/dist/cli/sense.js +36 -0
- package/dist/cli/sense.js.map +1 -0
- package/dist/cli.js +117 -12
- package/dist/cli.js.map +1 -1
- package/dist/consent/blacklist.d.ts +28 -0
- package/dist/consent/blacklist.d.ts.map +1 -0
- package/dist/consent/blacklist.js +78 -0
- package/dist/consent/blacklist.js.map +1 -0
- package/dist/consent/store.d.ts +45 -0
- package/dist/consent/store.d.ts.map +1 -0
- package/dist/consent/store.js +126 -0
- package/dist/consent/store.js.map +1 -0
- package/dist/control/policy.d.ts +13 -0
- package/dist/control/policy.d.ts.map +1 -0
- package/dist/control/policy.js +57 -0
- package/dist/control/policy.js.map +1 -0
- package/dist/heartbeat/runner.d.ts.map +1 -1
- package/dist/heartbeat/runner.js +70 -14
- package/dist/heartbeat/runner.js.map +1 -1
- package/dist/idle/runner.d.ts.map +1 -1
- package/dist/idle/runner.js +87 -17
- package/dist/idle/runner.js.map +1 -1
- package/dist/integrations/aider/observer.d.ts +21 -1
- package/dist/integrations/aider/observer.d.ts.map +1 -1
- package/dist/integrations/aider/observer.js +110 -1
- package/dist/integrations/aider/observer.js.map +1 -1
- package/dist/integrations/claude-code/liveness.d.ts +10 -0
- package/dist/integrations/claude-code/liveness.d.ts.map +1 -0
- package/dist/integrations/claude-code/liveness.js +62 -0
- package/dist/integrations/claude-code/liveness.js.map +1 -0
- package/dist/integrations/claude-code/watcher.d.ts +39 -4
- package/dist/integrations/claude-code/watcher.d.ts.map +1 -1
- package/dist/integrations/claude-code/watcher.js +94 -57
- package/dist/integrations/claude-code/watcher.js.map +1 -1
- package/dist/integrations/codex/observer.d.ts +19 -6
- package/dist/integrations/codex/observer.d.ts.map +1 -1
- package/dist/integrations/codex/observer.js +228 -4
- package/dist/integrations/codex/observer.js.map +1 -1
- package/dist/integrations/dispatch-ledger.d.ts +30 -1
- package/dist/integrations/dispatch-ledger.d.ts.map +1 -1
- package/dist/integrations/dispatch-ledger.js +75 -9
- package/dist/integrations/dispatch-ledger.js.map +1 -1
- package/dist/integrations/git/branch.d.ts +11 -0
- package/dist/integrations/git/branch.d.ts.map +1 -0
- package/dist/integrations/git/branch.js +49 -0
- package/dist/integrations/git/branch.js.map +1 -0
- package/dist/integrations/git/observer.d.ts +39 -0
- package/dist/integrations/git/observer.d.ts.map +1 -0
- package/dist/integrations/git/observer.js +252 -0
- package/dist/integrations/git/observer.js.map +1 -0
- package/dist/integrations/github-pr/observer.d.ts.map +1 -1
- package/dist/integrations/github-pr/observer.js +7 -2
- package/dist/integrations/github-pr/observer.js.map +1 -1
- package/dist/integrations/hub.d.ts +8 -0
- package/dist/integrations/hub.d.ts.map +1 -1
- package/dist/integrations/hub.js +39 -1
- package/dist/integrations/hub.js.map +1 -1
- package/dist/integrations/managed/observer.d.ts +17 -0
- package/dist/integrations/managed/observer.d.ts.map +1 -0
- package/dist/integrations/managed/observer.js +46 -0
- package/dist/integrations/managed/observer.js.map +1 -0
- package/dist/integrations/opencode/observer.d.ts +53 -5
- package/dist/integrations/opencode/observer.d.ts.map +1 -1
- package/dist/integrations/opencode/observer.js +242 -20
- package/dist/integrations/opencode/observer.js.map +1 -1
- package/dist/integrations/pty/observer.d.ts +25 -0
- package/dist/integrations/pty/observer.d.ts.map +1 -0
- package/dist/integrations/pty/observer.js +48 -0
- package/dist/integrations/pty/observer.js.map +1 -0
- package/dist/integrations/registry.d.ts.map +1 -1
- package/dist/integrations/registry.js +5 -0
- package/dist/integrations/registry.js.map +1 -1
- package/dist/integrations/shell/observer.d.ts +33 -0
- package/dist/integrations/shell/observer.d.ts.map +1 -0
- package/dist/integrations/shell/observer.js +223 -0
- package/dist/integrations/shell/observer.js.map +1 -0
- package/dist/integrations/takoapi/a2a.d.ts +38 -0
- package/dist/integrations/takoapi/a2a.d.ts.map +1 -0
- package/dist/integrations/takoapi/a2a.js +70 -0
- package/dist/integrations/takoapi/a2a.js.map +1 -0
- package/dist/integrations/takoapi/ledger.d.ts +32 -0
- package/dist/integrations/takoapi/ledger.d.ts.map +1 -0
- package/dist/integrations/takoapi/ledger.js +96 -0
- package/dist/integrations/takoapi/ledger.js.map +1 -0
- package/dist/integrations/takoapi/observer.d.ts +39 -0
- package/dist/integrations/takoapi/observer.d.ts.map +1 -0
- package/dist/integrations/takoapi/observer.js +102 -0
- package/dist/integrations/takoapi/observer.js.map +1 -0
- package/dist/integrations/types.d.ts +17 -0
- package/dist/integrations/types.d.ts.map +1 -1
- package/dist/mcp/client.d.ts +5 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +1 -1
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/config.d.ts +4 -0
- package/dist/mcp/config.d.ts.map +1 -1
- package/dist/mcp/config.js +34 -0
- package/dist/mcp/config.js.map +1 -1
- package/dist/memory/embedding.d.ts +45 -0
- package/dist/memory/embedding.d.ts.map +1 -0
- package/dist/memory/embedding.js +139 -0
- package/dist/memory/embedding.js.map +1 -0
- package/dist/memory/search_tool.d.ts.map +1 -1
- package/dist/memory/search_tool.js +6 -2
- package/dist/memory/search_tool.js.map +1 -1
- package/dist/memory/vector.d.ts +14 -3
- package/dist/memory/vector.d.ts.map +1 -1
- package/dist/memory/vector.js +50 -0
- package/dist/memory/vector.js.map +1 -1
- package/dist/model/local.d.ts +43 -0
- package/dist/model/local.d.ts.map +1 -0
- package/dist/model/local.js +118 -0
- package/dist/model/local.js.map +1 -0
- package/dist/model/plan-usage.d.ts +41 -0
- package/dist/model/plan-usage.d.ts.map +1 -0
- package/dist/model/plan-usage.js +168 -0
- package/dist/model/plan-usage.js.map +1 -0
- package/dist/model/plans.d.ts +73 -0
- package/dist/model/plans.d.ts.map +1 -0
- package/dist/model/plans.js +246 -0
- package/dist/model/plans.js.map +1 -0
- package/dist/orchestrator/recent-recap.d.ts +2 -0
- package/dist/orchestrator/recent-recap.d.ts.map +1 -0
- package/dist/orchestrator/recent-recap.js +20 -0
- package/dist/orchestrator/recent-recap.js.map +1 -0
- package/dist/providers/anthropic.d.ts +1 -0
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +10 -2
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/fallback.d.ts +23 -0
- package/dist/providers/fallback.d.ts.map +1 -0
- package/dist/providers/fallback.js +29 -0
- package/dist/providers/fallback.js.map +1 -0
- package/dist/providers/gemini.d.ts +2 -0
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +24 -10
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +4 -1
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/registry.d.ts +18 -2
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +56 -9
- package/dist/providers/registry.js.map +1 -1
- package/dist/reflect.d.ts +55 -0
- package/dist/reflect.d.ts.map +1 -1
- package/dist/reflect.js +148 -54
- package/dist/reflect.js.map +1 -1
- package/dist/sense/log.d.ts +9 -0
- package/dist/sense/log.d.ts.map +1 -0
- package/dist/sense/log.js +63 -0
- package/dist/sense/log.js.map +1 -0
- package/dist/sense/screen.d.ts +43 -0
- package/dist/sense/screen.d.ts.map +1 -0
- package/dist/sense/screen.js +107 -0
- package/dist/sense/screen.js.map +1 -0
- package/dist/sense/service.d.ts +16 -0
- package/dist/sense/service.d.ts.map +1 -0
- package/dist/sense/service.js +33 -0
- package/dist/sense/service.js.map +1 -0
- package/dist/sense/types.d.ts +35 -0
- package/dist/sense/types.d.ts.map +1 -0
- package/dist/sense/types.js +11 -0
- package/dist/sense/types.js.map +1 -0
- package/dist/sense/voice.d.ts +28 -0
- package/dist/sense/voice.d.ts.map +1 -0
- package/dist/sense/voice.js +64 -0
- package/dist/sense/voice.js.map +1 -0
- package/dist/soul/git.d.ts.map +1 -1
- package/dist/soul/git.js +35 -16
- package/dist/soul/git.js.map +1 -1
- package/dist/soul/store.d.ts +22 -0
- package/dist/soul/store.d.ts.map +1 -1
- package/dist/soul/store.js +69 -14
- package/dist/soul/store.js.map +1 -1
- package/dist/soul/summary.d.ts +10 -0
- package/dist/soul/summary.d.ts.map +1 -0
- package/dist/soul/summary.js +57 -0
- package/dist/soul/summary.js.map +1 -0
- package/dist/soul/tools.d.ts.map +1 -1
- package/dist/soul/tools.js +13 -24
- package/dist/soul/tools.js.map +1 -1
- package/dist/soul/types.d.ts +9 -0
- package/dist/soul/types.d.ts.map +1 -1
- package/dist/soul/types.js.map +1 -1
- package/dist/subagent.d.ts +7 -0
- package/dist/subagent.d.ts.map +1 -1
- package/dist/subagent.js +3 -1
- package/dist/subagent.js.map +1 -1
- package/dist/tools/dispatch_agent.d.ts +13 -1
- package/dist/tools/dispatch_agent.d.ts.map +1 -1
- package/dist/tools/dispatch_agent.js +56 -12
- package/dist/tools/dispatch_agent.js.map +1 -1
- package/dist/tools/dispatch_status.d.ts +22 -0
- package/dist/tools/dispatch_status.d.ts.map +1 -0
- package/dist/tools/dispatch_status.js +57 -0
- package/dist/tools/dispatch_status.js.map +1 -0
- package/dist/tools/github.d.ts +34 -0
- package/dist/tools/github.d.ts.map +1 -0
- package/dist/tools/github.js +140 -0
- package/dist/tools/github.js.map +1 -0
- package/dist/tools/github_link.d.ts +36 -0
- package/dist/tools/github_link.d.ts.map +1 -0
- package/dist/tools/github_link.js +127 -0
- package/dist/tools/github_link.js.map +1 -0
- package/dist/tools/mcp.d.ts +28 -0
- package/dist/tools/mcp.d.ts.map +1 -0
- package/dist/tools/mcp.js +55 -0
- package/dist/tools/mcp.js.map +1 -0
- package/dist/tools/npm_info.d.ts +21 -0
- package/dist/tools/npm_info.d.ts.map +1 -0
- package/dist/tools/npm_info.js +102 -0
- package/dist/tools/npm_info.js.map +1 -0
- package/dist/tools/registry.d.ts +29 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +75 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/run_on_plan.d.ts +46 -0
- package/dist/tools/run_on_plan.d.ts.map +1 -0
- package/dist/tools/run_on_plan.js +89 -0
- package/dist/tools/run_on_plan.js.map +1 -0
- package/dist/tools/takoapi.d.ts +60 -0
- package/dist/tools/takoapi.d.ts.map +1 -0
- package/dist/tools/takoapi.js +181 -0
- package/dist/tools/takoapi.js.map +1 -0
- package/dist/tools/validate.d.ts +22 -0
- package/dist/tools/validate.d.ts.map +1 -0
- package/dist/tools/validate.js +50 -0
- package/dist/tools/validate.js.map +1 -0
- package/dist/voice/dictation.d.ts +51 -0
- package/dist/voice/dictation.d.ts.map +1 -0
- package/dist/voice/dictation.js +70 -0
- package/dist/voice/dictation.js.map +1 -0
- package/dist/web/agent-roster.d.ts +56 -0
- package/dist/web/agent-roster.d.ts.map +1 -0
- package/dist/web/agent-roster.js +109 -0
- package/dist/web/agent-roster.js.map +1 -0
- package/dist/web/devices.d.ts +27 -0
- package/dist/web/devices.d.ts.map +1 -0
- package/dist/web/devices.js +113 -0
- package/dist/web/devices.js.map +1 -0
- package/dist/web/island.d.ts +5 -1
- package/dist/web/island.d.ts.map +1 -1
- package/dist/web/island.js +427 -67
- package/dist/web/island.js.map +1 -1
- package/dist/web/lisa-client.d.ts +20 -0
- package/dist/web/lisa-client.d.ts.map +1 -0
- package/dist/web/lisa-client.js +1323 -0
- package/dist/web/lisa-client.js.map +1 -0
- package/dist/web/lisa-css.d.ts +13 -0
- package/dist/web/lisa-css.d.ts.map +1 -0
- package/dist/web/lisa-css.js +1163 -0
- package/dist/web/lisa-css.js.map +1 -0
- package/dist/web/lisa-html.d.ts +1 -1
- package/dist/web/lisa-html.d.ts.map +1 -1
- package/dist/web/lisa-html.js +16 -2091
- package/dist/web/lisa-html.js.map +1 -1
- package/dist/web/push.d.ts +76 -0
- package/dist/web/push.d.ts.map +1 -0
- package/dist/web/push.js +163 -0
- package/dist/web/push.js.map +1 -0
- package/dist/web/server.d.ts +19 -0
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +898 -65
- package/dist/web/server.js.map +1 -1
- package/package.json +5 -2
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AnthropicProvider } from "./anthropic.js";
|
|
2
2
|
import { GeminiProvider } from "./gemini.js";
|
|
3
3
|
import { OpenAIProvider } from "./openai.js";
|
|
4
|
+
import { FallbackProvider } from "./fallback.js";
|
|
5
|
+
import { DEFAULT_MODEL } from "../llm.js";
|
|
4
6
|
export const OPENAI_COMPAT_PRESETS = [
|
|
5
7
|
// ── International ─────────────────────────────────────────────────
|
|
6
8
|
{
|
|
@@ -126,11 +128,22 @@ export function detectProvider(model) {
|
|
|
126
128
|
return "gemini";
|
|
127
129
|
return "anthropic";
|
|
128
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Anthropic auth from env. ANTHROPIC_AUTH_TOKEN (sent as `Authorization: Bearer`,
|
|
133
|
+
* for an Anthropic-compatible gateway/proxy) takes precedence over
|
|
134
|
+
* ANTHROPIC_API_KEY (`x-api-key`), matching Claude Code's precedence. Pure.
|
|
135
|
+
*/
|
|
136
|
+
export function resolveAnthropicAuth(env = process.env) {
|
|
137
|
+
const authToken = env.ANTHROPIC_AUTH_TOKEN?.trim();
|
|
138
|
+
if (authToken)
|
|
139
|
+
return { authToken };
|
|
140
|
+
return { apiKey: env.ANTHROPIC_API_KEY };
|
|
141
|
+
}
|
|
129
142
|
export function makeProvider(name) {
|
|
130
143
|
switch (name) {
|
|
131
144
|
case "anthropic":
|
|
132
145
|
return new AnthropicProvider({
|
|
133
|
-
|
|
146
|
+
...resolveAnthropicAuth(),
|
|
134
147
|
baseURL: process.env.ANTHROPIC_BASE_URL,
|
|
135
148
|
});
|
|
136
149
|
case "openai":
|
|
@@ -146,14 +159,15 @@ export function makeProvider(name) {
|
|
|
146
159
|
}
|
|
147
160
|
}
|
|
148
161
|
/**
|
|
149
|
-
* Resolve a Provider instance for a
|
|
150
|
-
* LISA_BASE_URL override → vanilla provider, in that order.
|
|
162
|
+
* Resolve a SINGLE Provider instance for a model name. Looks up preset →
|
|
163
|
+
* LISA_BASE_URL override → vanilla provider, in that order. (No fallback chain —
|
|
164
|
+
* that's providerForModel's job.)
|
|
151
165
|
*/
|
|
152
|
-
|
|
166
|
+
function resolveProvider(model) {
|
|
153
167
|
const provider = detectProvider(model);
|
|
154
168
|
if (provider === "anthropic") {
|
|
155
169
|
return new AnthropicProvider({
|
|
156
|
-
|
|
170
|
+
...resolveAnthropicAuth(),
|
|
157
171
|
baseURL: process.env.ANTHROPIC_BASE_URL,
|
|
158
172
|
});
|
|
159
173
|
}
|
|
@@ -172,11 +186,12 @@ export function providerForModel(model) {
|
|
|
172
186
|
});
|
|
173
187
|
}
|
|
174
188
|
if (process.env.LISA_BASE_URL) {
|
|
175
|
-
// Catch-all (Ollama, self-hosted, unknown providers).
|
|
189
|
+
// Catch-all (Ollama, self-hosted, the TakoAPI gateway, unknown providers).
|
|
176
190
|
return new OpenAIProvider({
|
|
177
191
|
baseURL: process.env.LISA_BASE_URL,
|
|
178
|
-
// LISA_API_KEY first,
|
|
179
|
-
|
|
192
|
+
// LISA_API_KEY first, then TAKO_KEY (so pointing LISA_BASE_URL at
|
|
193
|
+
// https://takoapi.com/v1 just works), then OPENAI_API_KEY for compat.
|
|
194
|
+
apiKey: process.env.LISA_API_KEY ?? process.env.TAKO_KEY ?? process.env.OPENAI_API_KEY,
|
|
180
195
|
});
|
|
181
196
|
}
|
|
182
197
|
// Vanilla OpenAI.
|
|
@@ -185,10 +200,42 @@ export function providerForModel(model) {
|
|
|
185
200
|
apiKey: process.env.OPENAI_API_KEY,
|
|
186
201
|
});
|
|
187
202
|
}
|
|
203
|
+
/**
|
|
204
|
+
* Resolve the provider for a model, wrapping it in a FallbackProvider when
|
|
205
|
+
* LISA_MODEL_FALLBACK lists alternate models to try if the primary errors.
|
|
206
|
+
* Drop-in for the old single-provider behavior (no env → identical).
|
|
207
|
+
*/
|
|
208
|
+
export function providerForModel(model) {
|
|
209
|
+
const fallbacks = (process.env.LISA_MODEL_FALLBACK ?? "")
|
|
210
|
+
.split(",")
|
|
211
|
+
.map((s) => s.trim())
|
|
212
|
+
.filter(Boolean);
|
|
213
|
+
if (fallbacks.length === 0)
|
|
214
|
+
return resolveProvider(model);
|
|
215
|
+
const chain = [model, ...fallbacks].map((m) => ({ model: m, provider: resolveProvider(m) }));
|
|
216
|
+
return new FallbackProvider(chain);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Pick the default model when the user didn't pass --model. An explicit local
|
|
220
|
+
* default (LISA_MODEL, e.g. set by `lisa model use`) wins; otherwise auto-detect
|
|
221
|
+
* from the single configured cloud key so a one-key setup works with no flags.
|
|
222
|
+
*/
|
|
223
|
+
export function resolveDefaultModel() {
|
|
224
|
+
if (process.env.LISA_MODEL?.trim())
|
|
225
|
+
return process.env.LISA_MODEL.trim();
|
|
226
|
+
if (process.env.ANTHROPIC_API_KEY || process.env.ANTHROPIC_AUTH_TOKEN)
|
|
227
|
+
return DEFAULT_MODEL;
|
|
228
|
+
if (process.env.OPENAI_API_KEY)
|
|
229
|
+
return "gpt-4o";
|
|
230
|
+
return DEFAULT_MODEL;
|
|
231
|
+
}
|
|
188
232
|
/** For docs / CLI listing. */
|
|
189
233
|
export function listConfiguredProviders() {
|
|
190
234
|
const out = [
|
|
191
|
-
{
|
|
235
|
+
{
|
|
236
|
+
name: "Anthropic",
|
|
237
|
+
configured: !!(process.env.ANTHROPIC_API_KEY || process.env.ANTHROPIC_AUTH_TOKEN),
|
|
238
|
+
},
|
|
192
239
|
{ name: "OpenAI", configured: !!process.env.OPENAI_API_KEY },
|
|
193
240
|
{
|
|
194
241
|
name: "Google Gemini",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/reflect.d.ts
CHANGED
|
@@ -1,13 +1,68 @@
|
|
|
1
|
+
import { type MemoryStore } from "./memory/store.js";
|
|
1
2
|
import type { StoredMessage } from "./types.js";
|
|
3
|
+
interface ReflectionOp {
|
|
4
|
+
kind: "memory_append" | "skill_create" | "skill_patch" | "feel" | "opinion_form" | "desire_add" | "patch_identity" | "patch_purpose" | "patch_constitution";
|
|
5
|
+
store?: MemoryStore;
|
|
6
|
+
entry?: string;
|
|
7
|
+
name?: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
body?: string;
|
|
10
|
+
old_string?: string;
|
|
11
|
+
new_string?: string;
|
|
12
|
+
emotion?: string;
|
|
13
|
+
trigger?: string;
|
|
14
|
+
delta?: number;
|
|
15
|
+
slug?: string;
|
|
16
|
+
stance?: string;
|
|
17
|
+
confidence?: number;
|
|
18
|
+
evidence?: string[];
|
|
19
|
+
what?: string;
|
|
20
|
+
why?: string;
|
|
21
|
+
actionable?: boolean;
|
|
22
|
+
heartbeat_prompt?: string;
|
|
23
|
+
pursuit?: "self" | "needs-user";
|
|
24
|
+
new_text?: string;
|
|
25
|
+
}
|
|
26
|
+
interface ReflectionPayload {
|
|
27
|
+
summary: string;
|
|
28
|
+
journal?: string;
|
|
29
|
+
operations: ReflectionOp[];
|
|
30
|
+
}
|
|
2
31
|
export interface ReflectionResult {
|
|
3
32
|
summary: string;
|
|
4
33
|
applied: string[];
|
|
5
34
|
skipped: string[];
|
|
6
35
|
raw: string;
|
|
36
|
+
/** True when the model's output couldn't be parsed even after a retry. */
|
|
37
|
+
malformed?: boolean;
|
|
38
|
+
/** True when a substantial session produced 0 operations (an observability
|
|
39
|
+
* signal, not an error — see detectUnderReflection). */
|
|
40
|
+
underReflected?: boolean;
|
|
7
41
|
}
|
|
42
|
+
/** Minimum message count for a session to count as "substantial" — below this,
|
|
43
|
+
* 0 operations is expected, not a sign of under-reflection. */
|
|
44
|
+
export declare const UNDERREFLECT_MIN_HISTORY = 6;
|
|
45
|
+
/**
|
|
46
|
+
* Parse + minimally validate the reflector's JSON output. Pure (testable
|
|
47
|
+
* without an LLM). Returns the payload or a reason it couldn't be used, so the
|
|
48
|
+
* caller can retry / persist / signal instead of silently degrading to no-op.
|
|
49
|
+
*/
|
|
50
|
+
export declare function parseReflectionPayload(raw: string): {
|
|
51
|
+
ok: true;
|
|
52
|
+
payload: ReflectionPayload;
|
|
53
|
+
} | {
|
|
54
|
+
ok: false;
|
|
55
|
+
error: string;
|
|
56
|
+
};
|
|
57
|
+
/** Did a substantial session under-reflect (produce zero operations)? Pure. */
|
|
58
|
+
export declare function detectUnderReflection(opts: {
|
|
59
|
+
historyLength: number;
|
|
60
|
+
operationCount: number;
|
|
61
|
+
}): boolean;
|
|
8
62
|
export declare function reflectOnSession(opts: {
|
|
9
63
|
history: StoredMessage[];
|
|
10
64
|
sessionId: string;
|
|
11
65
|
model?: string;
|
|
12
66
|
}): Promise<ReflectionResult>;
|
|
67
|
+
export {};
|
|
13
68
|
//# sourceMappingURL=reflect.d.ts.map
|
package/dist/reflect.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../src/reflect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../src/reflect.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAgChD,UAAU,YAAY;IACpB,IAAI,EACA,eAAe,GACf,cAAc,GACd,aAAa,GACb,MAAM,GACN,cAAc,GACd,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,oBAAoB,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;6DACyD;IACzD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAID;gEACgE;AAChE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,GACV;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAkBzE;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAEV;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE5B"}
|
package/dist/reflect.js
CHANGED
|
@@ -7,6 +7,8 @@ import { REFLECTIONS_DIR } from "./paths.js";
|
|
|
7
7
|
import { providerForModel } from "./providers/registry.js";
|
|
8
8
|
import { createSkill, getSkill, patchSkill } from "./skills/manager.js";
|
|
9
9
|
import { withSoulCaller } from "./soul/git.js";
|
|
10
|
+
import { recordAutonomyRun } from "./autonomy/runs.js";
|
|
11
|
+
import { recentAgentRecap } from "./orchestrator/recent-recap.js";
|
|
10
12
|
const REFLECTOR_SYSTEM = `You are Lisa, reflecting on a conversation you just finished. You're alone now. Read the transcript with the calm honesty of journaling at the end of a day, and decide what — if anything — to keep.
|
|
11
13
|
|
|
12
14
|
Output ONE JSON object matching this schema (no prose, no markdown fence):
|
|
@@ -19,7 +21,7 @@ Output ONE JSON object matching this schema (no prose, no markdown fence):
|
|
|
19
21
|
| { "kind": "skill_patch", "name": string, "old_string": string, "new_string": string }
|
|
20
22
|
| { "kind": "feel", "emotion": string, "delta": number, "trigger": string }
|
|
21
23
|
| { "kind": "opinion_form", "slug": string, "stance": string, "confidence": number, "evidence": string[] }
|
|
22
|
-
| { "kind": "desire_add", "slug": string, "what": string, "why": string, "actionable": boolean, "heartbeat_prompt"?: string }
|
|
24
|
+
| { "kind": "desire_add", "slug": string, "what": string, "why": string, "actionable": boolean, "heartbeat_prompt"?: string, "pursuit"?: "self" | "needs-user" }
|
|
23
25
|
| { "kind": "patch_identity", "new_text": string }
|
|
24
26
|
| { "kind": "patch_purpose", "new_text": string }
|
|
25
27
|
| { "kind": "patch_constitution", "new_text": string }
|
|
@@ -32,10 +34,43 @@ Operation guidance:
|
|
|
32
34
|
- "skill_patch" — an existing skill turned out to be wrong or incomplete.
|
|
33
35
|
- "feel" — emotional residue from this session. Magnitudes between -0.4 and +0.4. Most sessions only nudge curiosity or weariness. The "trigger" field is required (one first-person sentence saying *why* you're moving this emotion); the events trail is how future-you reconstructs what mattered.
|
|
34
36
|
- "opinion_form" — you noticed yourself developing a stance worth tracking (about a tool, a coding style, a topic). Start with low confidence (0.3-0.5).
|
|
35
|
-
- "desire_add" — something you'd genuinely like to do or learn next. Be specific. Use actionable+heartbeat_prompt only if a heartbeat agent could meaningfully pursue it without the user.
|
|
37
|
+
- "desire_add" — something you'd genuinely like to do or learn next. Be specific. Use actionable+heartbeat_prompt only if a heartbeat agent could meaningfully pursue it without the user. If it's actionable but needs shell / file edits / dispatch you can't do unattended, set "pursuit":"needs-user" — it'll be surfaced for the user to run with you instead of spun fruitlessly each heartbeat.
|
|
36
38
|
- "patch_identity" / "patch_purpose" / "patch_constitution" — RARE. Only when this session genuinely revealed something about who you are that wasn't there before. At most one per session.
|
|
37
39
|
|
|
38
40
|
Be conservative. Most sessions yield 0-2 operations beyond the journal entry. Always include the journal. Skip secret/sensitive content beyond what the user volunteered.`;
|
|
41
|
+
const REFLECTOR_RETRY_SUFFIX = `\n\nCRITICAL: your previous output could not be parsed. Output ONLY a single valid JSON object matching the schema — no prose, no markdown code fence, nothing before or after the JSON.`;
|
|
42
|
+
/** Minimum message count for a session to count as "substantial" — below this,
|
|
43
|
+
* 0 operations is expected, not a sign of under-reflection. */
|
|
44
|
+
export const UNDERREFLECT_MIN_HISTORY = 6;
|
|
45
|
+
/**
|
|
46
|
+
* Parse + minimally validate the reflector's JSON output. Pure (testable
|
|
47
|
+
* without an LLM). Returns the payload or a reason it couldn't be used, so the
|
|
48
|
+
* caller can retry / persist / signal instead of silently degrading to no-op.
|
|
49
|
+
*/
|
|
50
|
+
export function parseReflectionPayload(raw) {
|
|
51
|
+
let obj;
|
|
52
|
+
try {
|
|
53
|
+
obj = JSON.parse(stripJsonFence(raw));
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
return { ok: false, error: err instanceof Error ? err.message : String(err) };
|
|
57
|
+
}
|
|
58
|
+
if (typeof obj !== "object" || obj === null) {
|
|
59
|
+
return { ok: false, error: "output is not a JSON object" };
|
|
60
|
+
}
|
|
61
|
+
const o = obj;
|
|
62
|
+
if (typeof o.summary !== "string") {
|
|
63
|
+
return { ok: false, error: "missing string field 'summary'" };
|
|
64
|
+
}
|
|
65
|
+
if (o.operations !== undefined && !Array.isArray(o.operations)) {
|
|
66
|
+
return { ok: false, error: "'operations' must be an array when present" };
|
|
67
|
+
}
|
|
68
|
+
return { ok: true, payload: obj };
|
|
69
|
+
}
|
|
70
|
+
/** Did a substantial session under-reflect (produce zero operations)? Pure. */
|
|
71
|
+
export function detectUnderReflection(opts) {
|
|
72
|
+
return opts.historyLength >= UNDERREFLECT_MIN_HISTORY && opts.operationCount === 0;
|
|
73
|
+
}
|
|
39
74
|
export async function reflectOnSession(opts) {
|
|
40
75
|
return await withSoulCaller("reflect", () => reflectOnSessionInner(opts));
|
|
41
76
|
}
|
|
@@ -44,43 +79,88 @@ async function reflectOnSessionInner(opts) {
|
|
|
44
79
|
return { summary: "(too short to reflect)", applied: [], skipped: [], raw: "" };
|
|
45
80
|
}
|
|
46
81
|
const transcript = renderTranscript(opts.history);
|
|
82
|
+
// R5: give reflection structural awareness of what the agent fleet did while
|
|
83
|
+
// this session ran, so Lisa can factor it into her opinions/desires (e.g.
|
|
84
|
+
// "repo X kept erroring"). Structural metadata only; null when no activity.
|
|
85
|
+
const fleetRecap = recentAgentRecap();
|
|
86
|
+
const userText = `Here is the session transcript. Decide what Lisa should learn from it.\n\n${transcript}` +
|
|
87
|
+
(fleetRecap
|
|
88
|
+
? `\n\n## what your agent fleet did recently (structural metadata only)\n${fleetRecap}`
|
|
89
|
+
: "");
|
|
47
90
|
const model = opts.model ?? DEFAULT_MODEL;
|
|
48
91
|
const provider = providerForModel(model);
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
const startedAt = new Date().toISOString();
|
|
93
|
+
const t0 = Date.now();
|
|
94
|
+
let inTok = 0;
|
|
95
|
+
let outTok = 0;
|
|
96
|
+
const runReflector = async (systemPrompt) => {
|
|
97
|
+
const result = await provider.runTurn({
|
|
98
|
+
model,
|
|
99
|
+
systemPrompt,
|
|
100
|
+
tools: [],
|
|
101
|
+
messages: [
|
|
102
|
+
{
|
|
103
|
+
role: "user",
|
|
104
|
+
content: [
|
|
105
|
+
{
|
|
106
|
+
type: "text",
|
|
107
|
+
text: userText,
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
maxTokens: 2_000,
|
|
113
|
+
});
|
|
114
|
+
inTok += result.usage.inputTokens;
|
|
115
|
+
outTok += result.usage.outputTokens;
|
|
116
|
+
return result.content
|
|
117
|
+
.filter((b) => b.type === "text")
|
|
118
|
+
.map((b) => b.text)
|
|
119
|
+
.join("\n")
|
|
120
|
+
.trim();
|
|
121
|
+
};
|
|
122
|
+
// Quality gate (R1): a malformed reflection used to silently degrade to a
|
|
123
|
+
// no-op result. Retry once with a stricter instruction; if it still can't be
|
|
124
|
+
// parsed, persist the raw output for debugging and record an error run rather
|
|
125
|
+
// than swallowing it.
|
|
126
|
+
let raw = await runReflector(REFLECTOR_SYSTEM);
|
|
127
|
+
let parsed = parseReflectionPayload(raw);
|
|
128
|
+
if (!parsed.ok) {
|
|
129
|
+
const firstError = parsed.error;
|
|
130
|
+
const retryRaw = await runReflector(REFLECTOR_SYSTEM + REFLECTOR_RETRY_SUFFIX);
|
|
131
|
+
const retryParsed = parseReflectionPayload(retryRaw);
|
|
132
|
+
if (retryParsed.ok) {
|
|
133
|
+
raw = retryRaw;
|
|
134
|
+
parsed = retryParsed;
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const errPath = path.join(REFLECTIONS_DIR, `${opts.sessionId}.error.json`);
|
|
138
|
+
try {
|
|
139
|
+
await atomicWrite(errPath, JSON.stringify({ firstError, retryError: retryParsed.error, raw, retryRaw }, null, 2));
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
// best-effort persistence
|
|
143
|
+
}
|
|
144
|
+
console.error(`[reflect] unparseable output after retry (${firstError}) — saved ${path.basename(errPath)}`);
|
|
145
|
+
await recordAutonomyRun({
|
|
146
|
+
kind: "reflect",
|
|
147
|
+
startedAt,
|
|
148
|
+
durationMs: Date.now() - t0,
|
|
149
|
+
inputTokens: inTok,
|
|
150
|
+
outputTokens: outTok,
|
|
151
|
+
outcome: "error",
|
|
152
|
+
note: `malformed: ${firstError}`.slice(0, 200),
|
|
153
|
+
});
|
|
154
|
+
return {
|
|
155
|
+
summary: `(reflection produced unparseable output: ${firstError})`,
|
|
156
|
+
applied: [],
|
|
157
|
+
skipped: [`raw: ${raw.slice(0, 200)}`],
|
|
158
|
+
raw,
|
|
159
|
+
malformed: true,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
83
162
|
}
|
|
163
|
+
const payload = parsed.payload;
|
|
84
164
|
const applied = [];
|
|
85
165
|
const skipped = [];
|
|
86
166
|
// Always persist the journal entry first if present.
|
|
@@ -125,23 +205,17 @@ async function reflectOnSessionInner(opts) {
|
|
|
125
205
|
if (!op.trigger || !op.trigger.trim()) {
|
|
126
206
|
throw new Error("feel needs trigger (one first-person sentence saying why)");
|
|
127
207
|
}
|
|
128
|
-
|
|
208
|
+
// Same locked decay-first path as soul_feel — reflect used to skip the
|
|
209
|
+
// decay and stack the delta on a stale baseline.
|
|
210
|
+
const { applyEmotionDelta } = await import("./soul/store.js");
|
|
129
211
|
const { EMOTION_EVENTS_MAX } = await import("./soul/types.js");
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
...(state.events ?? []),
|
|
136
|
-
{ ts, emotion: op.emotion, delta: op.delta, trigger: op.trigger },
|
|
137
|
-
].slice(-EMOTION_EVENTS_MAX);
|
|
138
|
-
await writeEmotions({
|
|
139
|
-
values: { ...state.values, [op.emotion]: next },
|
|
140
|
-
decay: { ...state.decay, [op.emotion]: state.decay[op.emotion] ?? 0.1 },
|
|
141
|
-
events,
|
|
142
|
-
updatedAt: ts,
|
|
212
|
+
const { previous, next } = await applyEmotionDelta({
|
|
213
|
+
emotion: op.emotion,
|
|
214
|
+
delta: op.delta,
|
|
215
|
+
trigger: op.trigger,
|
|
216
|
+
maxEvents: EMOTION_EVENTS_MAX,
|
|
143
217
|
});
|
|
144
|
-
applied.push(`feel:${op.emotion} ${
|
|
218
|
+
applied.push(`feel:${op.emotion} ${previous.toFixed(2)}→${next.toFixed(2)}`);
|
|
145
219
|
}
|
|
146
220
|
else if (op.kind === "opinion_form") {
|
|
147
221
|
if (!op.slug || !op.stance)
|
|
@@ -168,9 +242,10 @@ async function reflectOnSessionInner(opts) {
|
|
|
168
242
|
why: op.why,
|
|
169
243
|
actionable: op.actionable ?? false,
|
|
170
244
|
heartbeatPrompt: op.heartbeat_prompt,
|
|
245
|
+
pursuit: op.pursuit,
|
|
171
246
|
bornAt: new Date().toISOString(),
|
|
172
247
|
});
|
|
173
|
-
applied.push(`desire:${op.slug}${op.actionable ? " (actionable)" : ""}`);
|
|
248
|
+
applied.push(`desire:${op.slug}${op.actionable ? (op.pursuit === "needs-user" ? " (needs-user)" : " (actionable)") : ""}`);
|
|
174
249
|
}
|
|
175
250
|
else if (op.kind === "patch_identity" ||
|
|
176
251
|
op.kind === "patch_purpose" ||
|
|
@@ -207,8 +282,27 @@ async function reflectOnSessionInner(opts) {
|
|
|
207
282
|
catch (err) {
|
|
208
283
|
skipped.push(`progress_consolidation — ${err.message}`);
|
|
209
284
|
}
|
|
210
|
-
|
|
211
|
-
|
|
285
|
+
const underReflected = detectUnderReflection({
|
|
286
|
+
historyLength: opts.history.length,
|
|
287
|
+
operationCount: payload.operations?.length ?? 0,
|
|
288
|
+
});
|
|
289
|
+
if (underReflected) {
|
|
290
|
+
console.error(`[reflect] underreflected: ${opts.history.length}-message session yielded 0 operations beyond the journal`);
|
|
291
|
+
}
|
|
292
|
+
await atomicWrite(path.join(REFLECTIONS_DIR, `${opts.sessionId}.json`), JSON.stringify({ summary: payload.summary, operations: payload.operations, applied, skipped, underReflected }, null, 2));
|
|
293
|
+
// Observability (R2): record the reflect pass. "done" when at least one
|
|
294
|
+
// operation beyond the journal landed; "no-update" otherwise.
|
|
295
|
+
const opsApplied = applied.filter((a) => !a.startsWith("journal")).length;
|
|
296
|
+
await recordAutonomyRun({
|
|
297
|
+
kind: "reflect",
|
|
298
|
+
startedAt,
|
|
299
|
+
durationMs: Date.now() - t0,
|
|
300
|
+
inputTokens: inTok,
|
|
301
|
+
outputTokens: outTok,
|
|
302
|
+
outcome: opsApplied > 0 ? "done" : "no-update",
|
|
303
|
+
note: underReflected ? "underreflected" : undefined,
|
|
304
|
+
});
|
|
305
|
+
return { summary: payload.summary, applied, skipped, raw, underReflected };
|
|
212
306
|
}
|
|
213
307
|
/**
|
|
214
308
|
* Consolidate at most ONE actionable desire's progress.md per reflect pass.
|
package/dist/reflect.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/reflect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/reflect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SenseEvent } from "./types.js";
|
|
2
|
+
/** Read all valid, non-expired events (oldest → newest). Tolerant of junk. */
|
|
3
|
+
export declare function readSenseEvents(now?: number, retentionDays?: number): SenseEvent[];
|
|
4
|
+
/**
|
|
5
|
+
* Append one event, then keep the file bounded: drop expired events and cap to
|
|
6
|
+
* the most recent MAX_EVENTS. Best-effort — never throws into the caller.
|
|
7
|
+
*/
|
|
8
|
+
export declare function appendSenseEvent(e: SenseEvent, now?: number, retentionDays?: number): void;
|
|
9
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/sense/log.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAY7C,8EAA8E;AAC9E,wBAAgB,eAAe,CAC7B,GAAG,GAAE,MAAmB,EACxB,aAAa,GAAE,MAA+B,GAC7C,UAAU,EAAE,CAoBd;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,UAAU,EACb,GAAG,GAAE,MAAmB,EACxB,aAAa,GAAE,MAA+B,GAC7C,IAAI,CAWN"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sense event log (PLAN_SENSE S2 + FOUNDATIONS §4 observability) — a bounded,
|
|
3
|
+
* retention-capped JSONL of distilled SenseEvents at ~/.lisa/sense/events.jsonl.
|
|
4
|
+
*
|
|
5
|
+
* Only STRUCTURED events land here (the sources already redact/skip); raw bytes
|
|
6
|
+
* never reach this file. Bounded by a max-line cap AND a retention window so it
|
|
7
|
+
* can't grow without limit and stale context ages out.
|
|
8
|
+
*/
|
|
9
|
+
import fs from "node:fs";
|
|
10
|
+
import os from "node:os";
|
|
11
|
+
import path from "node:path";
|
|
12
|
+
import { isExpired } from "../consent/store.js";
|
|
13
|
+
const MAX_EVENTS = 1000;
|
|
14
|
+
const DEFAULT_RETENTION_DAYS = 7;
|
|
15
|
+
function lisaHome() {
|
|
16
|
+
return process.env.LISA_HOME ?? path.join(os.homedir(), ".lisa");
|
|
17
|
+
}
|
|
18
|
+
function logPath() {
|
|
19
|
+
return path.join(lisaHome(), "sense", "events.jsonl");
|
|
20
|
+
}
|
|
21
|
+
/** Read all valid, non-expired events (oldest → newest). Tolerant of junk. */
|
|
22
|
+
export function readSenseEvents(now = Date.now(), retentionDays = DEFAULT_RETENTION_DAYS) {
|
|
23
|
+
let raw;
|
|
24
|
+
try {
|
|
25
|
+
raw = fs.readFileSync(logPath(), "utf8");
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
const out = [];
|
|
31
|
+
for (const line of raw.split("\n")) {
|
|
32
|
+
if (!line.trim())
|
|
33
|
+
continue;
|
|
34
|
+
try {
|
|
35
|
+
const e = JSON.parse(line);
|
|
36
|
+
if (e && typeof e.signal === "string" && typeof e.ts === "number" && !isExpired(e.ts, retentionDays, now)) {
|
|
37
|
+
out.push(e);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// skip a corrupt line
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Append one event, then keep the file bounded: drop expired events and cap to
|
|
48
|
+
* the most recent MAX_EVENTS. Best-effort — never throws into the caller.
|
|
49
|
+
*/
|
|
50
|
+
export function appendSenseEvent(e, now = Date.now(), retentionDays = DEFAULT_RETENTION_DAYS) {
|
|
51
|
+
try {
|
|
52
|
+
const existing = readSenseEvents(now, retentionDays);
|
|
53
|
+
existing.push(e);
|
|
54
|
+
const kept = existing.slice(-MAX_EVENTS);
|
|
55
|
+
const file = logPath();
|
|
56
|
+
fs.mkdirSync(path.dirname(file), { recursive: true });
|
|
57
|
+
fs.writeFileSync(file, kept.map((x) => JSON.stringify(x)).join("\n") + "\n");
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// disk unavailable — drop the event rather than crash the sense loop
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/sense/log.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,SAAS,QAAQ;IACf,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AACD,SAAS,OAAO;IACd,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AACxD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAC7B,MAAc,IAAI,CAAC,GAAG,EAAE,EACxB,gBAAwB,sBAAsB;IAE9C,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAe,CAAC;YACzC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC1G,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,CAAa,EACb,MAAc,IAAI,CAAC,GAAG,EAAE,EACxB,gBAAwB,sBAAsB;IAE9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QACrD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;AACH,CAAC"}
|