@pellux/goodvibes-tui 0.19.78 → 0.19.79
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/CHANGELOG.md +5 -0
- package/README.md +5 -5
- package/docs/foundation-artifacts/operator-contract.json +1 -1
- package/package.json +6 -3
- package/src/runtime/services.ts +28 -7
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://github.com/mgd34msu/goodvibes-tui)
|
|
6
6
|
|
|
7
7
|
A terminal-native AI coding, operations, automation, knowledge, and integration console with a typed runtime, omnichannel surfaces, structured memory/knowledge, and a raw ANSI renderer.
|
|
8
8
|
|
|
@@ -18,11 +18,11 @@ GoodVibes is a Bun program. Install Bun first and make sure `bun` is on `PATH`,
|
|
|
18
18
|
|
|
19
19
|
```sh
|
|
20
20
|
bun add -g @pellux/goodvibes-tui
|
|
21
|
-
bun pm -g trust @pellux/goodvibes-tui tree-sitter-css tree-sitter-javascript tree-sitter-python tree-sitter-typescript
|
|
21
|
+
bun pm -g trust @pellux/goodvibes-tui core-js tree-sitter-css tree-sitter-javascript tree-sitter-json tree-sitter-python tree-sitter-typescript
|
|
22
22
|
goodvibes
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Bun blocks lifecycle scripts for untrusted global packages. The trust command is required after the first global install so GoodVibes can run its postinstall binary installer and native
|
|
25
|
+
Bun blocks lifecycle scripts for untrusted global packages. The trust command is required after the first global install so GoodVibes can run its postinstall binary installer and every native dependency can run its install step. All packages in the trust command are required; if any remain untrusted, the install is incomplete. `tree-sitter-javascript` may appear more than once in the dependency tree, including under `tree-sitter-typescript`; trusting the package name covers those installed versions. Verify the global install with:
|
|
26
26
|
|
|
27
27
|
```sh
|
|
28
28
|
bun pm -g untrusted
|
|
@@ -30,7 +30,7 @@ goodvibes --version
|
|
|
30
30
|
goodvibes-daemon --version
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
`bun pm -g untrusted`
|
|
33
|
+
`bun pm -g untrusted` must report `Found 0 untrusted dependencies with scripts`. If it lists any package, rerun the full trust command above. `npm install -g @pellux/goodvibes-tui` is also supported, but it does not install Bun for you. The package preinstall check fails with a clear message if `bun` is missing from `PATH`.
|
|
34
34
|
|
|
35
35
|
Or run from source:
|
|
36
36
|
|
|
@@ -53,7 +53,7 @@ Release distribution:
|
|
|
53
53
|
|
|
54
54
|
- GitHub Releases are the primary distribution path for compiled binaries
|
|
55
55
|
- `bun add -g @pellux/goodvibes-tui` is the recommended global install path; the package is hosted on the npm registry and Bun installs from that registry directly
|
|
56
|
-
- Bun global installs require trusting `@pellux/goodvibes-tui` so the package postinstall can download the matching TUI and daemon binaries; the
|
|
56
|
+
- Bun global installs require trusting `@pellux/goodvibes-tui` so the package postinstall can download the matching TUI and daemon binaries; the dependency lifecycle packages currently requiring trust are `core-js`, `tree-sitter-css`, `tree-sitter-javascript`, `tree-sitter-json`, `tree-sitter-python`, and `tree-sitter-typescript`
|
|
57
57
|
- `npm install -g @pellux/goodvibes-tui` is supported on Linux, macOS, and WSL when Bun is already installed; the preinstall check verifies Bun, and the install script downloads the matching TUI and daemon binaries for the current platform
|
|
58
58
|
- native Windows is not supported; use WSL on Windows
|
|
59
59
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pellux/goodvibes-tui",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.79",
|
|
4
4
|
"description": "Terminal-native GoodVibes product for coding, operations, automation, knowledge, channels, and daemon-backed control-plane workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/main.ts",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"@anthropic-ai/vertex-sdk": "^0.16.0",
|
|
98
98
|
"@ast-grep/napi": "^0.42.0",
|
|
99
99
|
"@aws/bedrock-token-generator": "^1.1.0",
|
|
100
|
-
"@pellux/goodvibes-sdk": "0.33.
|
|
100
|
+
"@pellux/goodvibes-sdk": "0.33.17",
|
|
101
101
|
"bash-language-server": "^5.6.0",
|
|
102
102
|
"fuse.js": "^7.1.0",
|
|
103
103
|
"graphql": "^16.13.2",
|
|
@@ -124,9 +124,12 @@
|
|
|
124
124
|
},
|
|
125
125
|
"trustedDependencies": [
|
|
126
126
|
"@pellux/goodvibes-sdk",
|
|
127
|
+
"core-js",
|
|
127
128
|
"tree-sitter-css",
|
|
128
129
|
"tree-sitter-javascript",
|
|
129
|
-
"tree-sitter-
|
|
130
|
+
"tree-sitter-json",
|
|
131
|
+
"tree-sitter-python",
|
|
132
|
+
"tree-sitter-typescript"
|
|
130
133
|
],
|
|
131
134
|
"overrides": {
|
|
132
135
|
"minimatch": "^10.2.5"
|
package/src/runtime/services.ts
CHANGED
|
@@ -11,6 +11,7 @@ import { WatcherRegistry } from '@pellux/goodvibes-sdk/platform/watchers';
|
|
|
11
11
|
import { ArtifactStore } from '@pellux/goodvibes-sdk/platform/artifacts';
|
|
12
12
|
import {
|
|
13
13
|
HomeGraphService,
|
|
14
|
+
HOME_GRAPH_KNOWLEDGE_EXTENSION,
|
|
14
15
|
KnowledgeService,
|
|
15
16
|
KnowledgeSemanticService,
|
|
16
17
|
KnowledgeStore,
|
|
@@ -84,6 +85,9 @@ import {
|
|
|
84
85
|
type WorkflowServices,
|
|
85
86
|
} from '@pellux/goodvibes-sdk/platform/tools';
|
|
86
87
|
|
|
88
|
+
const REGULAR_KNOWLEDGE_DB_FILE = 'knowledge-wiki.sqlite';
|
|
89
|
+
const HOME_GRAPH_KNOWLEDGE_DB_FILE = 'knowledge-home-graph.sqlite';
|
|
90
|
+
|
|
87
91
|
function buildFallbackModelDefinition(provider: string, modelId: string): ModelDefinition {
|
|
88
92
|
const providerLower = provider.toLowerCase();
|
|
89
93
|
const isReasoningProvider = providerLower.includes('openai')
|
|
@@ -409,22 +413,35 @@ export function createRuntimeServices(options: RuntimeServicesOptions): RuntimeS
|
|
|
409
413
|
return record.id;
|
|
410
414
|
},
|
|
411
415
|
});
|
|
412
|
-
const knowledgeStore = new KnowledgeStore({
|
|
416
|
+
const knowledgeStore = new KnowledgeStore({
|
|
417
|
+
configManager,
|
|
418
|
+
dbFileName: REGULAR_KNOWLEDGE_DB_FILE,
|
|
419
|
+
});
|
|
420
|
+
const homeGraphKnowledgeStore = new KnowledgeStore({
|
|
421
|
+
configManager,
|
|
422
|
+
dbFileName: HOME_GRAPH_KNOWLEDGE_DB_FILE,
|
|
423
|
+
});
|
|
424
|
+
const knowledgeSemanticLlm = createProviderBackedKnowledgeSemanticLlm(providerRegistry, {
|
|
425
|
+
timeoutMs: 20_000,
|
|
426
|
+
maxConcurrent: 1,
|
|
427
|
+
});
|
|
413
428
|
const knowledgeSemanticService = new KnowledgeSemanticService(knowledgeStore, {
|
|
414
|
-
llm:
|
|
415
|
-
timeoutMs: 20_000,
|
|
416
|
-
maxConcurrent: 1,
|
|
417
|
-
}),
|
|
429
|
+
llm: knowledgeSemanticLlm,
|
|
418
430
|
maxLlmSourcesPerReindex: 3,
|
|
419
431
|
});
|
|
432
|
+
const homeGraphSemanticService = new KnowledgeSemanticService(homeGraphKnowledgeStore, {
|
|
433
|
+
llm: knowledgeSemanticLlm,
|
|
434
|
+
maxLlmSourcesPerReindex: 3,
|
|
435
|
+
objectProfiles: HOME_GRAPH_KNOWLEDGE_EXTENSION.objectProfiles,
|
|
436
|
+
});
|
|
420
437
|
const knowledgeService = new KnowledgeService(knowledgeStore, artifactStore, undefined, {
|
|
421
438
|
memoryRegistry,
|
|
422
439
|
runtimeBus: options.runtimeBus,
|
|
423
440
|
semanticService: knowledgeSemanticService,
|
|
424
441
|
});
|
|
425
442
|
knowledgeService.attachRuntimeBus(options.runtimeBus);
|
|
426
|
-
const homeGraphService = new HomeGraphService(
|
|
427
|
-
semanticService:
|
|
443
|
+
const homeGraphService = new HomeGraphService(homeGraphKnowledgeStore, artifactStore, {
|
|
444
|
+
semanticService: homeGraphSemanticService,
|
|
428
445
|
});
|
|
429
446
|
const projectPlanningProjectId = projectPlanningProjectIdFromPath(workingDirectory);
|
|
430
447
|
const projectPlanningService = new ProjectPlanningService(knowledgeStore, {
|
|
@@ -445,6 +462,10 @@ export function createRuntimeServices(options: RuntimeServicesOptions): RuntimeS
|
|
|
445
462
|
searchService: webSearchService,
|
|
446
463
|
ingestService: knowledgeService,
|
|
447
464
|
}));
|
|
465
|
+
homeGraphSemanticService.setGapRepairer(createWebKnowledgeGapRepairer({
|
|
466
|
+
searchService: webSearchService,
|
|
467
|
+
ingestService: homeGraphService,
|
|
468
|
+
}));
|
|
448
469
|
const mediaProviders = new MediaProviderRegistry();
|
|
449
470
|
ensureBuiltinMediaProviders(mediaProviders, artifactStore, providerRegistry);
|
|
450
471
|
const multimodalService = new MultimodalService(artifactStore, mediaProviders, voiceService, knowledgeService);
|
package/src/version.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { join } from 'node:path';
|
|
|
6
6
|
// The prebuild script updates the fallback value before compilation.
|
|
7
7
|
// Uses import.meta.dir (Bun) to locate package.json relative to this file,
|
|
8
8
|
// which is correct regardless of the process working directory.
|
|
9
|
-
let _version = '0.19.
|
|
9
|
+
let _version = '0.19.79';
|
|
10
10
|
try {
|
|
11
11
|
const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', 'package.json'), 'utf-8'));
|
|
12
12
|
_version = pkg.version ?? _version;
|