@felan-ai/felan 0.36.0 → 0.37.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/dist/host.json CHANGED
@@ -12,6 +12,8 @@
12
12
  } },
13
13
  { "id": "felan.runtime.dependencies", "major": 1, "use": "@felan-ai/felan/providers/runtime-dependencies" },
14
14
  { "id": "felan.models", "major": 1, "use": "@felan-ai/felan/providers/models" },
15
+ { "id": "felan.host.models", "major": 1, "use": "@felan-ai/felan/providers/host-models" },
16
+ { "id": "felan.memory.scheduler", "major": 1, "use": "@felan-ai/ext-memory/daemon" },
15
17
  { "id": "felan.secrets", "major": 1, "use": "@felan-ai/felan/providers/secrets" },
16
18
  { "id": "felan.sessions", "major": 1, "use": "@felan-ai/felan/providers/sessions" },
17
19
  { "id": "felan.sessions.history", "major": 1, "use": "@felan-ai/felan/providers/sessions" },
@@ -0,0 +1,6 @@
1
+ declare const _default: import("@felan-ai/daemon/provider").ServiceProviderDeclarations & {
2
+ readonly scope?: "daemon";
3
+ create(context: import("@felan-ai/daemon/provider").ProviderCreateContext): Promise<import("@felan-ai/daemon/provider").ServiceProviderInstance>;
4
+ };
5
+ export default _default;
6
+ //# sourceMappingURL=host-models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-models.d.ts","sourceRoot":"","sources":["../../src/providers/host-models.ts"],"names":[],"mappings":";;;;AAOA,wBAsEG"}
@@ -0,0 +1,89 @@
1
+ import { HOST_MAINTENANCE_SERVICE, HOST_MODELS_SERVICE } from '@felan-ai/agent-core';
2
+ import { defineServiceProvider } from '@felan-ai/daemon/provider';
3
+ import { createLocalClassifier } from './classifier.js';
4
+ import { createLocalModelsService } from './models.js';
5
+ import { createSubscriptionUsageCache } from './models-subscription.js';
6
+ import { createLocalSettingsManager, getClassifierModelSetting } from './settings.js';
7
+ export default defineServiceProvider({
8
+ scope: 'daemon',
9
+ provides: [HOST_MODELS_SERVICE],
10
+ requires: [HOST_MAINTENANCE_SERVICE],
11
+ async create(context) {
12
+ const lifetime = new AbortController();
13
+ const signal = AbortSignal.any([context.signal, lifetime.signal]);
14
+ const active = new Set();
15
+ const subscriptionUsage = createSubscriptionUsageCache();
16
+ let service;
17
+ let activated = false;
18
+ let closed = false;
19
+ const current = () => {
20
+ signal.throwIfAborted();
21
+ if (!activated || !service)
22
+ throw new Error('Host models are unavailable before activation or while settling.');
23
+ return service;
24
+ };
25
+ const track = (work) => {
26
+ active.add(work);
27
+ void work.then(() => active.delete(work), () => active.delete(work));
28
+ return work;
29
+ };
30
+ const classifier = Object.freeze({
31
+ canEvaluate: (state, questions) => {
32
+ try {
33
+ return current().classifier?.canEvaluate?.(state, questions) ?? false;
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ },
39
+ classify: (...args) => track(Promise.resolve().then(() => {
40
+ const classifier = current().classifier;
41
+ if (!classifier)
42
+ throw new Error('Host classifier is unavailable.');
43
+ return classifier.classify(...args);
44
+ })),
45
+ });
46
+ const value = Object.freeze({
47
+ getAvailable: (...args) => track(Promise.resolve().then(() => current().getAvailable(...args))),
48
+ getAvailableOfType: (...args) => track(Promise.resolve().then(() => current().getAvailableOfType(...args))),
49
+ getSubscriptionUsage: (...args) => track(Promise.resolve().then(() => current().getSubscriptionUsage(...args))),
50
+ completeSimple: (...args) => track(Promise.resolve().then(() => current().completeSimple(...args))),
51
+ generateImages: (...args) => track(Promise.resolve().then(() => current().generateImages(...args))),
52
+ streamSimple: (...args) => {
53
+ const stream = current().streamSimple(...args);
54
+ track(stream.result());
55
+ return stream;
56
+ },
57
+ classifier,
58
+ });
59
+ const waitForActive = async () => { while (active.size)
60
+ await Promise.allSettled([...active]); };
61
+ return {
62
+ implementations: [{ contract: HOST_MODELS_SERVICE, value }],
63
+ busy: () => active.size > 0,
64
+ async activate() {
65
+ signal.throwIfAborted();
66
+ if (closed)
67
+ throw new Error('Host models are closed.');
68
+ const maintenance = context.services.get(HOST_MAINTENANCE_SERVICE);
69
+ if (!maintenance)
70
+ throw new Error('Host models require host maintenance.');
71
+ const modelRuntime = maintenance.modelRuntime;
72
+ const settings = createLocalSettingsManager(maintenance.agentDir, maintenance.agentDir);
73
+ const selected = await createLocalClassifier(modelRuntime, getClassifierModelSetting(settings));
74
+ signal.throwIfAborted();
75
+ if (closed)
76
+ throw new Error('Host models are closed.');
77
+ service = createLocalModelsService({ modelRuntime, sessionId: 'host-maintenance', signal,
78
+ isActive: () => activated,
79
+ getSubscriptionUsage: model => subscriptionUsage(modelRuntime, model),
80
+ ...(selected.classifier ? { classifier: selected.classifier } : {}) });
81
+ activated = true;
82
+ },
83
+ async settle(mode) { closed = true; activated = false; if (mode === 'force')
84
+ lifetime.abort(); await waitForActive(); },
85
+ async dispose() { closed = true; activated = false; lifetime.abort(); await waitForActive(); },
86
+ };
87
+ },
88
+ });
89
+ //# sourceMappingURL=host-models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-models.js","sourceRoot":"","sources":["../../src/providers/host-models.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@felan-ai/felan",
3
- "version": "0.36.0",
3
+ "version": "0.37.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@felan-ai/felan",
9
- "version": "0.36.0",
9
+ "version": "0.37.0",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "@felan-ai/daemon": "0.6.0",
12
+ "@felan-ai/daemon": "0.7.0",
13
13
  "@agentclientprotocol/sdk": "1.4.0",
14
14
  "@earendil-works/pi-coding-agent": "1.5.0",
15
15
  "@earendil-works/pi-tui": "1.5.0",
@@ -17,32 +17,32 @@
17
17
  "@napi-rs/keyring": "1.3.0",
18
18
  "open": "11.0.0",
19
19
  "typebox": "1.1.38",
20
- "@felan-ai/agent-core": "0.15.0",
20
+ "@felan-ai/agent-core": "0.15.1",
21
21
  "@felan-ai/ext-ask-user": "0.12.0",
22
22
  "@felan-ai/ext-background-bash": "0.14.0",
23
- "@felan-ai/ext-claude-code": "0.3.0",
24
23
  "@felan-ai/ext-browser": "0.14.0",
24
+ "@felan-ai/ext-claude-code": "0.3.0",
25
25
  "@felan-ai/ext-codebase-memory": "0.10.0",
26
26
  "@felan-ai/ext-codex": "0.12.0",
27
27
  "@felan-ai/ext-context": "0.12.0",
28
28
  "@felan-ai/ext-context-view": "0.10.0",
29
- "@felan-ai/ext-fusion": "0.4.0",
30
29
  "@felan-ai/ext-felan-api": "0.10.0",
31
- "@felan-ai/ext-insights": "0.10.0",
30
+ "@felan-ai/ext-fusion": "0.4.0",
32
31
  "@felan-ai/ext-markitdown": "0.11.0",
33
32
  "@felan-ai/ext-mcp": "0.10.0",
34
- "@felan-ai/ext-memory": "0.12.0",
33
+ "@felan-ai/ext-memory": "0.13.0",
34
+ "@felan-ai/ext-insights": "0.10.0",
35
35
  "@felan-ai/ext-model-tools": "0.6.0",
36
- "@felan-ai/ext-powerline": "0.16.0",
37
36
  "@felan-ai/ext-output-style": "0.11.0",
37
+ "@felan-ai/ext-powerline": "0.16.0",
38
38
  "@felan-ai/ext-prewalk": "0.14.0",
39
39
  "@felan-ai/ext-prompt-history": "0.9.0",
40
40
  "@felan-ai/ext-rtk-optimizer": "0.12.0",
41
- "@felan-ai/ext-session-title": "0.9.0",
42
41
  "@felan-ai/ext-session-compaction": "0.9.0",
43
42
  "@felan-ai/ext-subagents": "0.14.0",
44
- "@felan-ai/ext-tasks": "0.11.0",
43
+ "@felan-ai/ext-session-title": "0.9.0",
45
44
  "@felan-ai/ext-web-access": "0.13.0",
45
+ "@felan-ai/ext-tasks": "0.11.0",
46
46
  "@felan-ai/session-protocol": "0.4.2"
47
47
  },
48
48
  "bin": {
@@ -568,8 +568,8 @@
568
568
  }
569
569
  },
570
570
  "node_modules/@felan-ai/agent-core": {
571
- "version": "0.15.0",
572
- "resolved": "https://registry.npmjs.org/@felan-ai/agent-core/-/agent-core-0.15.0.tgz",
571
+ "version": "0.15.1",
572
+ "resolved": "https://registry.npmjs.org/@felan-ai/agent-core/-/agent-core-0.15.1.tgz",
573
573
  "license": "MIT",
574
574
  "dependencies": {
575
575
  "@earendil-works/pi-agent-core": "1.5.0",
@@ -594,12 +594,12 @@
594
594
  "license": "MIT"
595
595
  },
596
596
  "node_modules/@felan-ai/daemon": {
597
- "version": "0.6.0",
598
- "resolved": "https://registry.npmjs.org/@felan-ai/daemon/-/daemon-0.6.0.tgz",
597
+ "version": "0.7.0",
598
+ "resolved": "https://registry.npmjs.org/@felan-ai/daemon/-/daemon-0.7.0.tgz",
599
599
  "license": "MIT",
600
600
  "dependencies": {
601
601
  "@earendil-works/pi-coding-agent": "1.5.0",
602
- "@felan-ai/agent-core": "0.15.0",
602
+ "@felan-ai/agent-core": "0.15.1",
603
603
  "@felan-ai/session-protocol": "0.4.2",
604
604
  "@supabase/supabase-js": "2.97.0",
605
605
  "koffi": "3.3.2",
@@ -784,8 +784,8 @@
784
784
  }
785
785
  },
786
786
  "node_modules/@felan-ai/ext-memory": {
787
- "version": "0.12.0",
788
- "resolved": "https://registry.npmjs.org/@felan-ai/ext-memory/-/ext-memory-0.12.0.tgz",
787
+ "version": "0.13.0",
788
+ "resolved": "https://registry.npmjs.org/@felan-ai/ext-memory/-/ext-memory-0.13.0.tgz",
789
789
  "license": "MIT",
790
790
  "engines": {
791
791
  "node": ">=22.19.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@felan-ai/felan",
3
- "version": "0.36.0",
3
+ "version": "0.37.0",
4
4
  "description": "Felan Code: an open-source, model-portable coding agent built for cost-efficient, verifiable software work",
5
5
  "keywords": [
6
6
  "ai",
@@ -48,6 +48,10 @@
48
48
  "types": "./dist/providers/models.d.ts",
49
49
  "import": "./dist/providers/models.js"
50
50
  },
51
+ "./providers/host-models": {
52
+ "types": "./dist/providers/host-models.d.ts",
53
+ "import": "./dist/providers/host-models.js"
54
+ },
51
55
  "./providers/secrets": {
52
56
  "types": "./dist/providers/secrets.d.ts",
53
57
  "import": "./dist/providers/secrets.js"
@@ -86,7 +90,7 @@
86
90
  }
87
91
  },
88
92
  "dependencies": {
89
- "@felan-ai/daemon": "0.6.0",
93
+ "@felan-ai/daemon": "0.7.0",
90
94
  "@agentclientprotocol/sdk": "1.4.0",
91
95
  "@earendil-works/pi-coding-agent": "1.5.0",
92
96
  "@earendil-works/pi-tui": "1.5.0",
@@ -94,32 +98,32 @@
94
98
  "@napi-rs/keyring": "1.3.0",
95
99
  "open": "11.0.0",
96
100
  "typebox": "1.1.38",
97
- "@felan-ai/agent-core": "0.15.0",
101
+ "@felan-ai/agent-core": "0.15.1",
98
102
  "@felan-ai/ext-ask-user": "0.12.0",
99
- "@felan-ai/ext-codebase-memory": "0.10.0",
100
103
  "@felan-ai/ext-background-bash": "0.14.0",
101
104
  "@felan-ai/ext-browser": "0.14.0",
102
105
  "@felan-ai/ext-claude-code": "0.3.0",
106
+ "@felan-ai/ext-codebase-memory": "0.10.0",
103
107
  "@felan-ai/ext-codex": "0.12.0",
104
- "@felan-ai/ext-context": "0.12.0",
105
108
  "@felan-ai/ext-context-view": "0.10.0",
109
+ "@felan-ai/ext-context": "0.12.0",
106
110
  "@felan-ai/ext-felan-api": "0.10.0",
107
111
  "@felan-ai/ext-fusion": "0.4.0",
108
- "@felan-ai/ext-markitdown": "0.11.0",
109
112
  "@felan-ai/ext-mcp": "0.10.0",
110
- "@felan-ai/ext-memory": "0.12.0",
111
113
  "@felan-ai/ext-insights": "0.10.0",
112
- "@felan-ai/ext-powerline": "0.16.0",
113
114
  "@felan-ai/ext-model-tools": "0.6.0",
115
+ "@felan-ai/ext-memory": "0.13.0",
116
+ "@felan-ai/ext-markitdown": "0.11.0",
117
+ "@felan-ai/ext-output-style": "0.11.0",
118
+ "@felan-ai/ext-powerline": "0.16.0",
119
+ "@felan-ai/ext-prewalk": "0.14.0",
114
120
  "@felan-ai/ext-rtk-optimizer": "0.12.0",
115
121
  "@felan-ai/ext-session-compaction": "0.9.0",
116
- "@felan-ai/ext-output-style": "0.11.0",
117
- "@felan-ai/ext-prompt-history": "0.9.0",
118
122
  "@felan-ai/ext-session-title": "0.9.0",
123
+ "@felan-ai/ext-prompt-history": "0.9.0",
119
124
  "@felan-ai/ext-subagents": "0.14.0",
120
- "@felan-ai/ext-tasks": "0.11.0",
121
- "@felan-ai/ext-prewalk": "0.14.0",
122
125
  "@felan-ai/ext-web-access": "0.13.0",
126
+ "@felan-ai/ext-tasks": "0.11.0",
123
127
  "@felan-ai/session-protocol": "0.4.2"
124
128
  },
125
129
  "publishConfig": {