@felan-ai/felan 0.12.8 → 0.12.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/NOTICE +4 -0
  2. package/README.md +92 -5
  3. package/dist/application.d.ts.map +1 -1
  4. package/dist/application.js +5 -1
  5. package/dist/application.js.map +1 -1
  6. package/dist/dependencies.d.ts.map +1 -1
  7. package/dist/dependencies.js +22 -0
  8. package/dist/dependencies.js.map +1 -1
  9. package/dist/extensions.d.ts +10 -2
  10. package/dist/extensions.d.ts.map +1 -1
  11. package/dist/extensions.js +10 -1
  12. package/dist/extensions.js.map +1 -1
  13. package/dist/index.d.ts +4 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/lock.d.ts +15 -0
  18. package/dist/lock.d.ts.map +1 -0
  19. package/dist/lock.js +169 -0
  20. package/dist/lock.js.map +1 -0
  21. package/dist/memory/control.d.ts +8 -0
  22. package/dist/memory/control.d.ts.map +1 -0
  23. package/dist/memory/control.js +106 -0
  24. package/dist/memory/control.js.map +1 -0
  25. package/dist/memory/coordinator.d.ts +38 -0
  26. package/dist/memory/coordinator.d.ts.map +1 -0
  27. package/dist/memory/coordinator.js +396 -0
  28. package/dist/memory/coordinator.js.map +1 -0
  29. package/dist/memory/dreamer.d.ts +41 -0
  30. package/dist/memory/dreamer.d.ts.map +1 -0
  31. package/dist/memory/dreamer.js +531 -0
  32. package/dist/memory/dreamer.js.map +1 -0
  33. package/dist/memory/lease.d.ts +13 -0
  34. package/dist/memory/lease.d.ts.map +1 -0
  35. package/dist/memory/lease.js +188 -0
  36. package/dist/memory/lease.js.map +1 -0
  37. package/dist/memory/project.d.ts +7 -0
  38. package/dist/memory/project.d.ts.map +1 -0
  39. package/dist/memory/project.js +41 -0
  40. package/dist/memory/project.js.map +1 -0
  41. package/dist/memory/store.d.ts +52 -0
  42. package/dist/memory/store.d.ts.map +1 -0
  43. package/dist/memory/store.js +344 -0
  44. package/dist/memory/store.js.map +1 -0
  45. package/dist/runtime.d.ts +5 -1
  46. package/dist/runtime.d.ts.map +1 -1
  47. package/dist/runtime.js +68 -10
  48. package/dist/runtime.js.map +1 -1
  49. package/dist/settings.d.ts +3 -0
  50. package/dist/settings.d.ts.map +1 -1
  51. package/dist/settings.js +61 -27
  52. package/dist/settings.js.map +1 -1
  53. package/dist/startup-header.d.ts +1 -0
  54. package/dist/startup-header.d.ts.map +1 -1
  55. package/dist/startup-header.js +40 -0
  56. package/dist/startup-header.js.map +1 -1
  57. package/dist/subagents/catalog.d.ts.map +1 -1
  58. package/dist/subagents/catalog.js +4 -2
  59. package/dist/subagents/catalog.js.map +1 -1
  60. package/dist/subagents/host.d.ts +5 -0
  61. package/dist/subagents/host.d.ts.map +1 -1
  62. package/dist/subagents/host.js +10 -7
  63. package/dist/subagents/host.js.map +1 -1
  64. package/dist/tool-activity/presentation.d.ts.map +1 -1
  65. package/dist/tool-activity/presentation.js +217 -3
  66. package/dist/tool-activity/presentation.js.map +1 -1
  67. package/package.json +10 -8
package/NOTICE CHANGED
@@ -6,6 +6,10 @@ This package composes the MIT-licensed @felan-ai/agent-core and Felan extension
6
6
  packages listed in package.json. Their package-level LICENSE and NOTICE files
7
7
  contain the applicable attribution and source provenance.
8
8
 
9
+ The local-first memory integration is original MIT-licensed Felan code from
10
+ @felan-ai/ext-memory. Its package-level LICENSE and NOTICE contain the
11
+ applicable attribution.
12
+
9
13
  The terminal application uses @earendil-works/pi-coding-agent and
10
14
  @earendil-works/pi-tui 0.84.2 from https://github.com/earendil-works/pi,
11
15
  licensed under the MIT License.
package/README.md CHANGED
@@ -15,6 +15,72 @@ global settings from `~/.felan/settings.json` and does not load Pi project
15
15
  settings. Pi project trust does not apply to Felan's fixed resource policy, so
16
16
  Felan starts without a project trust prompt.
17
17
 
18
+ Local memory is enabled by default and works without a Felan account or cloud
19
+ connection. It consolidates settled root-session evidence into an inspectable
20
+ Markdown wiki. The canonical project store is outside the customer repository:
21
+
22
+ ```text
23
+ $FELAN_AGENT_DIR/memory/v1/projects/<project-hash>/
24
+ state.json
25
+ current/summary.md
26
+ current/index.md
27
+ current/pages/...
28
+ ```
29
+
30
+ The project hash is derived from the canonical Git root, or the canonical cwd
31
+ when no repository exists. Root-session storage receives a non-authoritative
32
+ copy at `storage/sessions/<root-id>/.memory`; child sessions can read that copy
33
+ but ordinary edits never publish it. Felan does not create `<repository>/.memory`
34
+ and does not synchronize local memory with cloud team memory.
35
+ Each session receives one hidden persisted memory-context entry at startup;
36
+ provider calls reuse it, and compaction or tree navigation restores it only if
37
+ it is no longer on the active branch. That entry is excluded from memory
38
+ evidence processing. Once it loads successfully, the welcome screen's
39
+ `[Context]` section lists the projected `.memory/summary.md` path alongside
40
+ project instructions so the loaded summary can be opened directly. The summary
41
+ is orientation only: substantive memory-backed answers should follow the
42
+ projected absolute `index.md` links to relevant pages and cite page paths and
43
+ their `Sources` session IDs.
44
+
45
+ Use `/memory status`, `/memory run`, `/memory enable`, `/memory disable`, or
46
+ `/memory open` to inspect and control local processing. A missing local model
47
+ credential never prevents startup or recall of existing memory; processing
48
+ remains pending until a configured model is available. Processing is idle
49
+ batched while Felan runs and catches up on the next launch after shutdown. The
50
+ enable/disable commands persist `felanTui.memoryProcessing` and do not remove
51
+ the memory recall extension.
52
+
53
+ After checkpoints are recorded, the TUI coordinator owns idle batching,
54
+ startup recovery, retries, and shutdown cancellation. Each batch runs one
55
+ disposable headless Pi memory-dreamer session against staging. It reads the
56
+ immutable `.dreaming/input` manifest and transcripts, edits staged `.memory`
57
+ files in place, and returns only a concise completion summary. The worker has
58
+ no normal Felan extensions, skills, repository context, credentials, or
59
+ process execution; its active tools are limited to `read`, `ls`, `edit`, and
60
+ `write`. The worker has no separate turn, tool-call, or per-file I/O budgets;
61
+ the only execution failsafe is a one-hour wall-clock timeout. The coordinator
62
+ validates and publishes the staged filesystem output, so model, validation,
63
+ cancellation, timeout, or publication failures leave evidence pending for
64
+ retry. The worker uses the active root-session model when it is authenticated;
65
+ if that model is unavailable, it falls back to another authenticated available
66
+ model. With no authenticated model, evidence remains pending. The portable
67
+ `@felan-ai/ext-memory` extension only recalls memory and records root
68
+ checkpoints; it does not schedule dreaming.
69
+
70
+ Evidence ingestion is separate from the worker's file-tool policy. The host
71
+ opens each checkpoint's append-only JSONL session with a bounded snapshot and
72
+ streams only the visible active-branch delta; abandoned branches, hidden
73
+ memory-context entries, and unrelated large tool output are not staged. Source
74
+ files may be much larger than the evidence sent to the model. After redaction,
75
+ each staged transcript is capped at 256 KiB. A changed, missing, or malformed
76
+ checkpoint source remains pending without blocking valid checkpoints in the
77
+ same batch; it is retried by `/memory run`, a newer cursor, or a later launch.
78
+ The dreamer updates affected pages and cross-links, preserves valid historical
79
+ source entries, marks superseded or conflicting claims, and performs a bounded
80
+ semantic maintenance pass before publication. Root-index links in each session
81
+ projection are rebased to that projection's absolute `.memory` path; canonical
82
+ memory remains unchanged.
83
+
18
84
  Felan suppresses Pi's version notification, bundled changelog, package update
19
85
  notifications, and install/update telemetry. Update behavior is owned by the
20
86
  Felan application.
@@ -58,9 +124,11 @@ All built-in extensions are enabled by default. Toggle them in
58
124
  "markitdown": true,
59
125
  "mcp": true,
60
126
  "webAccess": true,
127
+ "browser": true,
61
128
  "backgroundBash": true,
62
129
  "codex": true,
63
130
  "rtkOptimizer": true,
131
+ "memory": true,
64
132
  "powerline": false
65
133
  }
66
134
  }
@@ -71,10 +139,11 @@ Felan opens a dependency wizard before the first prompt. MarkItDown can be
71
139
  installed into Felan's managed Python environment or disabled. RTK can be
72
140
  installed with its pinned official installer or skipped while its
73
141
  binary-independent output compaction remains active. Background Bash is
74
- disabled when required POSIX process utilities are unavailable. Choices are
75
- stored in global settings, never prompt in non-interactive sessions, and can be
76
- revisited with `/dependencies`. Install actions always require explicit
77
- confirmation.
142
+ disabled when required POSIX process utilities are unavailable. The reviewed
143
+ `agent-browser` CLI can be installed into Felan's managed agent storage or the
144
+ Browser extension can be disabled. Choices are stored in global settings,
145
+ never prompt in non-interactive sessions, and can be revisited with
146
+ `/dependencies`. Install actions always require explicit confirmation.
78
147
 
79
148
  The local transcript groups adjacent tool calls by default, with one concise
80
149
  action row per call beneath each group title. Press `Ctrl+O` to show bounded
@@ -82,7 +151,9 @@ result previews. Use `/tools` or `Alt+T` to inspect the complete arguments and
82
151
  result for one root-session call. Selected subagent transcripts use the same
83
152
  grouped or full tool rendering and `Ctrl+O` previews. Subagent completion
84
153
  notices stay on one summary line by default; `Ctrl+O` shows a bounded preview
85
- and `Alt+A` opens full agent details.
154
+ and `Alt+A` opens full agent details. Grouped reads from projected or canonical
155
+ local memory appear as `Memory Recall`; conservative read-only Codex commands
156
+ receive the same label without hiding mutating or arbitrary shell commands.
86
157
  To restore Pi's original ungrouped rendering, set:
87
158
 
88
159
  ```json
@@ -159,6 +230,13 @@ Brave, and self-hosted SearXNG. Configure providers in
159
230
  encoded as untrusted external data; private and reserved network targets are
160
231
  blocked by default.
161
232
 
233
+ `browser` registers one browser tool backed by the reviewed `agent-browser`
234
+ CLI. Ask the tool for the version-matched `core` or specialized skill before
235
+ browser actions, then pass literal CLI arguments for navigation, snapshots,
236
+ interactions, and screenshots. Bare screenshots are attached directly when the
237
+ selected model accepts image input; browser pages, skill text, and CLI output
238
+ remain untrusted data.
239
+
162
240
  `markitdown` extends ordinary `read` calls for DOC/DOCX, PPT/PPTX, XLS/XLSX,
163
241
  RTF, EPUB, and Outlook MSG files. It intentionally leaves PDFs, images, audio,
164
242
  and generic archives to their existing or explicit workflows. Input,
@@ -244,6 +322,15 @@ Local agent definitions are loaded only from bundled Felan definitions,
244
322
  bundled definitions; within one scope the Felan-specific directory overrides
245
323
  the shared `.agents` directory. Pi ambient agent discovery remains disabled.
246
324
 
325
+ The bundled definitions have role-specific model settings: `general` inherits the
326
+ parent model and thinking for implementation or investigation, `explore` uses the
327
+ `low` model tier with thinking `off` for cheap read-only exploration, and `reviewer`
328
+ inherits the parent model and thinking for quality-sensitive review. A definition's
329
+ `model` and `thinking` settings take precedence over `Agent` arguments. When a
330
+ definition omits either setting, the corresponding argument is used; if both omit
331
+ it, the parent setting is inherited. A custom definition with id `explore` replaces
332
+ the bundled definition and can choose its own settings.
333
+
247
334
  Each definition is a Markdown file with flat `key: value` frontmatter and a
248
335
  required prompt body. `description` is required; `id` defaults to the filename.
249
336
  Optional fields are `model`, `thinking`, `max_turns`, `timeout_seconds`, and
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,oBAAqB,SAAQ,8BAA8B;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqCrF"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,oBAAqB,SAAQ,8BAA8B;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+CrF"}
@@ -1,3 +1,4 @@
1
+ import { join } from 'node:path';
1
2
  import { InteractiveMode } from '@earendil-works/pi-coding-agent';
2
3
  import { createLocalFelanRuntime, } from './runtime.js';
3
4
  import { installFelanStartupHeader } from './startup-header.js';
@@ -15,7 +16,10 @@ export async function runLocalFelan(options = {}) {
15
16
  ...(options.initialMessage === undefined ? {} : { initialMessage: options.initialMessage }),
16
17
  ...(options.verbose === undefined ? {} : { verbose: options.verbose }),
17
18
  });
18
- installFelanStartupHeader(mode, { expanded: options.verbose === true });
19
+ installFelanStartupHeader(mode, {
20
+ expanded: options.verbose === true,
21
+ memorySummaryPath: () => join(runtime.services.agentDir, 'storage', 'sessions', encodeURIComponent(runtime.session.sessionManager.getSessionId()), '.memory', 'summary.md'),
22
+ });
19
23
  await mode.run();
20
24
  }
21
25
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,uBAAuB,GAExB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAOhF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAgC,EAAE;IACpE,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC3D,MAAM,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACrE,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE;YACvE,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACvE,CAAC,CAAC;QACH,yBAAyB,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;YACvD,CAAC;YACD,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gBAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,0BAA0B,CAAC;YACjE,CAAC;YACD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,mBAAmB,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EACL,uBAAuB,GAExB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAOhF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAgC,EAAE;IACpE,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC3D,MAAM,0BAA0B,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACrE,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,GAAG,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC,6BAA6B,CAAC,OAAO,CAAC,EAAE;YACvE,GAAG,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3F,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;SACvE,CAAC,CAAC;QACH,yBAAyB,CAAC,IAAI,EAAE;YAC9B,QAAQ,EAAE,OAAO,CAAC,OAAO,KAAK,IAAI;YAClC,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,EACzB,SAAS,EACT,UAAU,EACV,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EACjE,SAAS,EACT,YAAY,CACb;SACF,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACrC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;YACvD,CAAC;YACD,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;gBAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC3C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,0BAA0B,CAAC;YACjE,CAAC;YACD,IAAI,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBACtC,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,mBAAmB,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAa9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAS5D,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AAEnF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,UAAU,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvG,YAAY,CAAC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC3D;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,sBAAsB,EA0DrE,CAAC;AAEF,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,qCAAqC,GAC7C,cAAc,CAkChB"}
1
+ {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAEZ,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAkB9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAS5D,eAAO,MAAM,4BAA4B,yCAAyC,CAAC;AAEnF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,GAAG,UAAU,CAAC;IAC9D,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvG,YAAY,CAAC,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC3D;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS,sBAAsB,EA+ErE,CAAC;AAEF,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,qCAAqC,GAC7C,cAAc,CAkChB"}
@@ -1,4 +1,5 @@
1
1
  import { inspectBackgroundBashRuntime } from '@felan-ai/ext-background-bash';
2
+ import { inspectAgentBrowserRuntime, installManagedAgentBrowser, MANAGED_AGENT_BROWSER_VERSION, } from '@felan-ai/ext-browser';
2
3
  import { detectMarkitdown, installManagedMarkitdown, setActiveMarkitdownEnabled, } from '@felan-ai/ext-markitdown';
3
4
  import { inspectRtkRuntime, installManagedRtk, MANAGED_RTK_VERSION, refreshActiveRtkRuntime, } from '@felan-ai/ext-rtk-optimizer';
4
5
  import { getDependencyOnboardingChoice, getFelanSettings, isBuiltinExtensionEnabled, setBuiltinExtensionEnabled, setDependencyOnboardingChoice, } from './settings.js';
@@ -16,6 +17,27 @@ export const localRuntimeDependencies = [
16
17
  return status.available ? status : { available: false, reason: status.reason };
17
18
  },
18
19
  },
20
+ {
21
+ id: 'agent-browser',
22
+ label: 'agent-browser',
23
+ extension: 'browser',
24
+ purpose: 'browser automation, authenticated web-app workflows, and screenshots',
25
+ installConfirmation: `Download the reviewed agent-browser ${MANAGED_AGENT_BROWSER_VERSION} package, verify its integrity, and install its native CLI into Felan agent storage?`,
26
+ unavailableChoice: 'Disable the Browser extension',
27
+ unavailableOutcome: 'disable-extension',
28
+ check: async (runtime) => {
29
+ const detected = await inspectAgentBrowserRuntime(runtime);
30
+ return detected.available
31
+ ? { available: true, version: detected.invocation.version }
32
+ : { available: false, reason: detected.reason };
33
+ },
34
+ install: async (runtime, onStatus) => {
35
+ const detected = await installManagedAgentBrowser(runtime, onStatus);
36
+ return detected.available
37
+ ? { available: true, version: detected.invocation.version }
38
+ : { available: false, reason: detected.reason };
39
+ },
40
+ },
19
41
  {
20
42
  id: 'markitdown',
21
43
  label: 'MarkItDown',
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  import type { ExtensionPackageImporter, ModelRuntime } from '@felan-ai/agent-core';
2
+ import { type MemoryHost, type MemoryRole } from '@felan-ai/ext-memory';
2
3
  import { type SubagentHost } from '@felan-ai/ext-subagents';
3
4
  import { type LocalSubagentNavigatorHost } from './subagents/agent-navigator.js';
4
5
  export declare const askUserExtensionPackage = "@felan-ai/ext-ask-user";
5
6
  export declare const mcpExtensionPackage = "@felan-ai/ext-mcp";
6
7
  export declare const powerlineExtensionPackage = "@felan-ai/ext-powerline";
7
8
  export declare const subagentsExtensionPackage = "@felan-ai/ext-subagents";
9
+ export declare const memoryExtensionPackage = "@felan-ai/ext-memory";
8
10
  export declare const builtinExtensionPackages: {
9
11
  readonly subagents: "@felan-ai/ext-subagents";
10
12
  readonly askUser: "@felan-ai/ext-ask-user";
@@ -12,17 +14,23 @@ export declare const builtinExtensionPackages: {
12
14
  readonly prewalk: "@felan-ai/ext-prewalk";
13
15
  readonly mcp: "@felan-ai/ext-mcp";
14
16
  readonly webAccess: "@felan-ai/ext-web-access";
17
+ readonly browser: "@felan-ai/ext-browser";
15
18
  readonly backgroundBash: "@felan-ai/ext-background-bash";
16
19
  readonly codex: "@felan-ai/ext-codex";
17
20
  readonly rtkOptimizer: "@felan-ai/ext-rtk-optimizer";
18
21
  readonly markitdown: "@felan-ai/ext-markitdown";
19
22
  readonly context: "@felan-ai/ext-context";
23
+ readonly memory: "@felan-ai/ext-memory";
20
24
  readonly powerline: "@felan-ai/ext-powerline";
21
25
  };
22
- export declare const localExtensionPackages: ("@felan-ai/ext-subagents" | "@felan-ai/ext-ask-user" | "@felan-ai/ext-tasks" | "@felan-ai/ext-prewalk" | "@felan-ai/ext-mcp" | "@felan-ai/ext-web-access" | "@felan-ai/ext-background-bash" | "@felan-ai/ext-codex" | "@felan-ai/ext-rtk-optimizer" | "@felan-ai/ext-markitdown" | "@felan-ai/ext-context" | "@felan-ai/ext-powerline")[];
26
+ export declare const localExtensionPackages: ("@felan-ai/ext-subagents" | "@felan-ai/ext-ask-user" | "@felan-ai/ext-tasks" | "@felan-ai/ext-prewalk" | "@felan-ai/ext-mcp" | "@felan-ai/ext-web-access" | "@felan-ai/ext-browser" | "@felan-ai/ext-background-bash" | "@felan-ai/ext-codex" | "@felan-ai/ext-rtk-optimizer" | "@felan-ai/ext-markitdown" | "@felan-ai/ext-context" | "@felan-ai/ext-memory" | "@felan-ai/ext-powerline")[];
23
27
  export type BuiltinExtensionName = keyof typeof builtinExtensionPackages;
24
28
  export type BuiltinExtensionSettings = Partial<Record<BuiltinExtensionName, boolean>>;
25
29
  export declare function resolveBuiltinExtensionPackages(settings: unknown): readonly string[];
26
30
  export declare const importLocalExtension: ExtensionPackageImporter;
27
- export declare function createLocalExtensionImporter(host: SubagentHost & LocalSubagentNavigatorHost, modelRuntime: ModelRuntime, importExtension?: ExtensionPackageImporter, shutdownHost?: () => Promise<void>): ExtensionPackageImporter;
31
+ export interface LocalMemoryExtensionBinding {
32
+ readonly role: MemoryRole;
33
+ readonly host: MemoryHost;
34
+ }
35
+ export declare function createLocalExtensionImporter(host: SubagentHost & LocalSubagentNavigatorHost, modelRuntime: ModelRuntime, importExtension?: ExtensionPackageImporter, shutdownHost?: () => Promise<void>, memoryBinding?: LocalMemoryExtensionBinding): ExtensionPackageImporter;
28
36
  //# sourceMappingURL=extensions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAInF,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;CAc3B,CAAC;AACX,eAAO,MAAM,sBAAsB,4UAA0C,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,wBAAwB,CAAC;AACzE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC;AAItF,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAYpF;AAED,eAAO,MAAM,oBAAoB,EAAE,wBAKlC,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,YAAY,GAAG,0BAA0B,EAC/C,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,wBAA+C,EAChE,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GACjC,wBAAwB,CAsC1B"}
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGnF,OAAO,EAAyB,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAGL,KAAK,0BAA0B,EAChC,MAAM,gCAAgC,CAAC;AAExC,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,mBAAmB,sBAAsB,CAAC;AACvD,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,yBAAyB,4BAA4B,CAAC;AACnE,eAAO,MAAM,sBAAsB,yBAAyB,CAAC;AAC7D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;CAgB3B,CAAC;AACX,eAAO,MAAM,sBAAsB,+XAA0C,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG,MAAM,OAAO,wBAAwB,CAAC;AACzE,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAAC;AAItF,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAYpF;AAED,eAAO,MAAM,oBAAoB,EAAE,wBAKlC,CAAC;AAEF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B;AAED,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,YAAY,GAAG,0BAA0B,EAC/C,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,wBAA+C,EAChE,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAClC,aAAa,CAAC,EAAE,2BAA2B,GAC1C,wBAAwB,CA0C1B"}
@@ -1,5 +1,6 @@
1
1
  import { createAskUserExtension } from '@felan-ai/ext-ask-user';
2
2
  import { createTuiAskUserHost } from '@felan-ai/ext-ask-user/tui';
3
+ import { createMemoryExtension } from '@felan-ai/ext-memory';
3
4
  import { createPowerlineExtension } from '@felan-ai/ext-powerline';
4
5
  import { createSubagentsExtension, } from '@felan-ai/ext-subagents';
5
6
  import { createLocalMcpExtension } from './mcp/index.js';
@@ -9,6 +10,7 @@ export const askUserExtensionPackage = '@felan-ai/ext-ask-user';
9
10
  export const mcpExtensionPackage = '@felan-ai/ext-mcp';
10
11
  export const powerlineExtensionPackage = '@felan-ai/ext-powerline';
11
12
  export const subagentsExtensionPackage = '@felan-ai/ext-subagents';
13
+ export const memoryExtensionPackage = '@felan-ai/ext-memory';
12
14
  export const builtinExtensionPackages = {
13
15
  subagents: subagentsExtensionPackage,
14
16
  askUser: askUserExtensionPackage,
@@ -16,12 +18,14 @@ export const builtinExtensionPackages = {
16
18
  prewalk: '@felan-ai/ext-prewalk',
17
19
  mcp: mcpExtensionPackage,
18
20
  webAccess: '@felan-ai/ext-web-access',
21
+ browser: '@felan-ai/ext-browser',
19
22
  backgroundBash: '@felan-ai/ext-background-bash',
20
23
  codex: '@felan-ai/ext-codex',
21
24
  rtkOptimizer: '@felan-ai/ext-rtk-optimizer',
22
25
  // Append conversion diagnostics after result optimization, then restore the source path for progressive context.
23
26
  markitdown: '@felan-ai/ext-markitdown',
24
27
  context: '@felan-ai/ext-context',
28
+ memory: memoryExtensionPackage,
25
29
  powerline: powerlineExtensionPackage,
26
30
  };
27
31
  export const localExtensionPackages = Object.values(builtinExtensionPackages);
@@ -47,7 +51,7 @@ export const importLocalExtension = async (packageName) => {
47
51
  }
48
52
  return import(packageName);
49
53
  };
50
- export function createLocalExtensionImporter(host, modelRuntime, importExtension = importLocalExtension, shutdownHost) {
54
+ export function createLocalExtensionImporter(host, modelRuntime, importExtension = importLocalExtension, shutdownHost, memoryBinding) {
51
55
  let powerlineLoaded = false;
52
56
  let agentRailRenderer;
53
57
  const powerline = createPowerlineExtension(createLocalSubscriptionUsageHost(modelRuntime), {
@@ -84,6 +88,11 @@ export function createLocalExtensionImporter(host, modelRuntime, importExtension
84
88
  powerlineLoaded = true;
85
89
  return { default: powerline };
86
90
  }
91
+ if (packageName === memoryExtensionPackage) {
92
+ if (!memoryBinding)
93
+ throw new Error('Local memory extension requires a host binding');
94
+ return { default: createMemoryExtension(memoryBinding) };
95
+ }
87
96
  return importExtension(packageName);
88
97
  };
89
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../src/extensions.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,10 @@ export { createLocalFelanRuntime, createLocalModelRuntime, createLocalSessionRun
8
8
  export { LocalSubagentHost } from './subagents/host.js';
9
9
  export type { CreateLocalSubagentHostOptions, LocalSubagentSettings, LocalSubagentView, } from './subagents/host.js';
10
10
  export type { CreateLocalFelanRuntimeOptions, CreateLocalSessionRuntimeFactoryOptions, LocalFelanRuntime, } from './runtime.js';
11
+ export { LocalMemoryCoordinator } from './memory/coordinator.js';
12
+ export { localMemoryProjectDirectory, resolveLocalMemoryProject } from './memory/project.js';
13
+ export type { LocalMemoryCoordinatorOptions, LocalMemorySessionHostOptions, } from './memory/coordinator.js';
14
+ export type { LocalMemoryProject } from './memory/project.js';
11
15
  export type { LocalAgentRuntimeFactory, LocalAgentRuntimeFactoryRequest, } from './runtime-factory.js';
12
16
  export { createLocalSettingsManager, getFelanSettings } from './settings.js';
13
17
  export type { FelanSettings } from './settings.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,8BAA8B,EAC9B,uCAAuC,EACvC,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7E,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,mCAAmC,EACnC,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,8BAA8B,EAC9B,uCAAuC,EACvC,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,YAAY,EACV,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,+BAA+B,GAChC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7E,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EACL,mCAAmC,EACnC,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,8 @@ export { runCli } from './cli-main.js';
3
3
  export { builtinExtensionPackages, importLocalExtension, localExtensionPackages, resolveBuiltinExtensionPackages, } from './extensions.js';
4
4
  export { createLocalFelanRuntime, createLocalModelRuntime, createLocalSessionRuntimeFactory, getLocalAgentDir, getLocalSkillPaths, } from './runtime.js';
5
5
  export { LocalSubagentHost } from './subagents/host.js';
6
+ export { LocalMemoryCoordinator } from './memory/coordinator.js';
7
+ export { localMemoryProjectDirectory, resolveLocalMemoryProject } from './memory/project.js';
6
8
  export { createLocalSettingsManager, getFelanSettings } from './settings.js';
7
9
  export { LOCAL_APPEND_SYSTEM_PROMPT_FILENAME, loadLocalAppendSystemPrompt, } from './system-prompt.js';
8
10
  export { FELAN_VERSION } from './version.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAexD,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE7E,OAAO,EACL,mCAAmC,EACnC,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,+BAA+B,GAChC,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,EAChC,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAWxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAU7F,OAAO,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE7E,OAAO,EACL,mCAAmC,EACnC,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
package/dist/lock.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { type LockOptions } from 'proper-lockfile';
2
+ export type LocalFileLockOptions = Omit<LockOptions, 'onCompromised'> & {
3
+ readonly preservePathOnRelease?: boolean;
4
+ };
5
+ export interface LocalFileLock {
6
+ readonly compromised: AbortSignal;
7
+ isCompromised(): boolean;
8
+ isCurrent(): Promise<boolean>;
9
+ throwIfCompromised(message?: string): void;
10
+ retire(staleMs: number): Promise<void>;
11
+ release(): Promise<void>;
12
+ }
13
+ export declare function withLocalFileLock<T>(path: string, options: LocalFileLockOptions, operation: (lock: LocalFileLock) => Promise<T>): Promise<T>;
14
+ export declare function acquireLocalFileLock(path: string, options?: LocalFileLockOptions): Promise<LocalFileLock>;
15
+ //# sourceMappingURL=lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../src/lock.ts"],"names":[],"mappings":"AAEA,OAAiB,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG;IACtE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,aAAa,IAAI,OAAO,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC,CAcZ;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAqDxB"}
package/dist/lock.js ADDED
@@ -0,0 +1,169 @@
1
+ import * as nodeFs from 'node:fs';
2
+ import { lstat, utimes } from 'node:fs/promises';
3
+ import lockfile, {} from 'proper-lockfile';
4
+ export async function withLocalFileLock(path, options, operation) {
5
+ const lock = await acquireLocalFileLock(path, {
6
+ ...options,
7
+ preservePathOnRelease: true,
8
+ });
9
+ try {
10
+ lock.throwIfCompromised();
11
+ const result = await operation(lock);
12
+ lock.throwIfCompromised();
13
+ return result;
14
+ }
15
+ finally {
16
+ await lock.release();
17
+ await lock.retire(options.stale ?? 10_000);
18
+ }
19
+ }
20
+ export async function acquireLocalFileLock(path, options = {}) {
21
+ const controller = new AbortController();
22
+ let compromiseError;
23
+ const lockPath = options.lockfilePath ?? `${path}.lock`;
24
+ const { preservePathOnRelease = false, ...lockOptions } = options;
25
+ const identityRef = {};
26
+ const releaseLock = await lockfile.lock(path, {
27
+ ...lockOptions,
28
+ fs: createGuardedFs(lockPath, identityRef, preservePathOnRelease),
29
+ onCompromised: (error) => {
30
+ compromiseError ??= error;
31
+ controller.abort(error);
32
+ },
33
+ });
34
+ const lockIdentity = await readLockIdentity(lockPath);
35
+ if (!lockIdentity) {
36
+ const error = new Error('Local file lock disappeared during acquisition');
37
+ compromiseError = error;
38
+ controller.abort(error);
39
+ throw error;
40
+ }
41
+ identityRef.current = lockIdentity;
42
+ const isCurrent = async () => {
43
+ if (compromiseError)
44
+ return false;
45
+ const current = await readLockIdentity(lockPath);
46
+ return current !== undefined && sameLockIdentity(current, lockIdentity);
47
+ };
48
+ let released = false;
49
+ return {
50
+ compromised: controller.signal,
51
+ isCompromised: () => compromiseError !== undefined,
52
+ isCurrent,
53
+ throwIfCompromised(message) {
54
+ if (!compromiseError)
55
+ return;
56
+ if (message === undefined)
57
+ throw compromiseError;
58
+ throw new Error(message, { cause: compromiseError });
59
+ },
60
+ async retire(staleMs) {
61
+ if (!preservePathOnRelease || !(await isCurrent()))
62
+ return;
63
+ const retiredAt = new Date(Date.now() - Math.max(staleMs, 2_000) - 1_000);
64
+ await utimes(lockPath, retiredAt, retiredAt).catch(() => { });
65
+ },
66
+ async release() {
67
+ if (released)
68
+ return;
69
+ released = true;
70
+ try {
71
+ await releaseLock();
72
+ }
73
+ catch (error) {
74
+ if (!compromiseError && await isCurrent())
75
+ throw error;
76
+ }
77
+ },
78
+ };
79
+ }
80
+ function createGuardedFs(lockPath, identityRef, preservePathOnRelease) {
81
+ const guarded = {
82
+ ...nodeFs,
83
+ rmdir(path, callback) {
84
+ if (path !== lockPath) {
85
+ nodeFs.rmdir(path, callback);
86
+ return;
87
+ }
88
+ if (!identityRef.current) {
89
+ nodeFs.rmdir(path, (error) => {
90
+ // A populated stale lock is still owned. Let proper-lockfile's
91
+ // follow-up mkdir report ELOCKED instead of surfacing ENOTEMPTY.
92
+ callback(isNotEmpty(error) ? null : error);
93
+ });
94
+ return;
95
+ }
96
+ if (preservePathOnRelease) {
97
+ callback(null);
98
+ return;
99
+ }
100
+ nodeFs.lstat(path, (error, stats) => {
101
+ if (error) {
102
+ if (isMissing(error)) {
103
+ callback(null);
104
+ return;
105
+ }
106
+ callback(error);
107
+ return;
108
+ }
109
+ if (!sameLockIdentity(stats, identityRef.current)) {
110
+ callback(null);
111
+ return;
112
+ }
113
+ nodeFs.rmdir(path, callback);
114
+ });
115
+ },
116
+ rmdirSync(path) {
117
+ if (path !== lockPath) {
118
+ nodeFs.rmdirSync(path);
119
+ return;
120
+ }
121
+ if (!identityRef.current) {
122
+ try {
123
+ nodeFs.rmdirSync(path);
124
+ }
125
+ catch (error) {
126
+ if (!isNotEmpty(error))
127
+ throw error;
128
+ }
129
+ return;
130
+ }
131
+ if (preservePathOnRelease)
132
+ return;
133
+ let stats;
134
+ try {
135
+ stats = nodeFs.lstatSync(path);
136
+ }
137
+ catch (error) {
138
+ if (isMissing(error))
139
+ return;
140
+ throw error;
141
+ }
142
+ if (!sameLockIdentity(stats, identityRef.current))
143
+ return;
144
+ nodeFs.rmdirSync(path);
145
+ },
146
+ };
147
+ return guarded;
148
+ }
149
+ async function readLockIdentity(path) {
150
+ try {
151
+ const stats = await lstat(path);
152
+ return { dev: stats.dev, ino: stats.ino, birthtimeMs: stats.birthtimeMs };
153
+ }
154
+ catch (error) {
155
+ if (isMissing(error))
156
+ return undefined;
157
+ throw error;
158
+ }
159
+ }
160
+ function sameLockIdentity(left, right) {
161
+ return left.dev === right.dev && left.ino === right.ino && left.birthtimeMs === right.birthtimeMs;
162
+ }
163
+ function isMissing(error) {
164
+ return typeof error === 'object' && error !== null && Reflect.get(error, 'code') === 'ENOENT';
165
+ }
166
+ function isNotEmpty(error) {
167
+ return typeof error === 'object' && error !== null && Reflect.get(error, 'code') === 'ENOTEMPTY';
168
+ }
169
+ //# sourceMappingURL=lock.js.map