@pellux/goodvibes-sdk 0.18.12 → 0.18.14

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 (34) hide show
  1. package/dist/_internal/platform/agents/wrfc-workmap.js +1 -1
  2. package/dist/_internal/platform/automation/schedules.js +1 -1
  3. package/dist/_internal/platform/bookmarks/manager.d.ts +1 -1
  4. package/dist/_internal/platform/bookmarks/manager.js +1 -1
  5. package/dist/_internal/platform/config/schema-domain-core.js +1 -1
  6. package/dist/_internal/platform/config/schema-domain-runtime.js +1 -1
  7. package/dist/_internal/platform/discovery/mcp-scanner.js +5 -5
  8. package/dist/_internal/platform/discovery/scanner.js +1 -1
  9. package/dist/_internal/platform/intelligence/config.js +4 -4
  10. package/dist/_internal/platform/intelligence/facade.d.ts +1 -1
  11. package/dist/_internal/platform/intelligence/facade.js +2 -2
  12. package/dist/_internal/platform/profiles/manager.d.ts +1 -1
  13. package/dist/_internal/platform/profiles/manager.js +1 -1
  14. package/dist/_internal/platform/runtime/inspection/state-inspector.d.ts +2 -0
  15. package/dist/_internal/platform/runtime/inspection/state-inspector.d.ts.map +1 -0
  16. package/dist/_internal/platform/runtime/inspection/state-inspector.js +1 -0
  17. package/dist/_internal/platform/runtime/remote/distributed-runtime-manager.js +1 -1
  18. package/dist/_internal/platform/runtime/shell-paths.d.ts +0 -4
  19. package/dist/_internal/platform/runtime/shell-paths.d.ts.map +1 -1
  20. package/dist/_internal/platform/runtime/shell-paths.js +0 -6
  21. package/dist/_internal/platform/scheduler/scheduler.d.ts +1 -1
  22. package/dist/_internal/platform/scheduler/scheduler.js +1 -1
  23. package/dist/_internal/platform/sessions/orchestration/registry.d.ts +2 -2
  24. package/dist/_internal/platform/sessions/orchestration/registry.js +3 -3
  25. package/dist/_internal/platform/tools/fetch/schema.d.ts +1 -1
  26. package/dist/_internal/platform/tools/fetch/schema.js +1 -1
  27. package/dist/_internal/platform/tools/packet/index.js +1 -1
  28. package/dist/_internal/platform/tools/query/index.js +1 -1
  29. package/dist/_internal/platform/tools/registry-tool/index.js +4 -4
  30. package/dist/_internal/platform/tools/registry-tool/skill-loader.js +2 -2
  31. package/dist/_internal/platform/tools/team/index.js +1 -1
  32. package/dist/_internal/platform/tools/worklist/index.js +1 -1
  33. package/dist/_internal/platform/watchers/store.js +1 -1
  34. package/package.json +1 -1
@@ -5,7 +5,7 @@ import { summarizeError } from '../utils/error-display.js';
5
5
  export class WrfcWorkmap {
6
6
  filePath;
7
7
  constructor(projectRoot, sessionId) {
8
- this.filePath = join(projectRoot, '.goodvibes', 'sdk', 'sessions', `${sessionId}_workmap.jsonl`);
8
+ this.filePath = join(projectRoot, '.goodvibes', 'tui', 'sessions', `${sessionId}_workmap.jsonl`);
9
9
  }
10
10
  dirCreated = false;
11
11
  append(entry) {
@@ -1,7 +1,7 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { TaskScheduler } from '../scheduler/scheduler.js';
3
3
  const EVERY_PATTERN = /^(\d+(?:\.\d+)?)(ms|s|m|h|d)$/;
4
- const CRON_HELPER_STATE_PATH = '.goodvibes/sdk/.automation-cron-helper.json';
4
+ const CRON_HELPER_STATE_PATH = '.goodvibes/tui/.automation-cron-helper.json';
5
5
  export const DEFAULT_TOP_OF_HOUR_STAGGER_MS = 5 * 60 * 1_000;
6
6
  function createCronHelper() {
7
7
  return new TaskScheduler(CRON_HELPER_STATE_PATH);
@@ -13,7 +13,7 @@ export interface BookmarkEntry {
13
13
  * BookmarkManager - Tracks bookmarked blocks and saves block content to disk.
14
14
  *
15
15
  * Bookmarks are stored in memory for the session. Saved block content is
16
- * written to ~/.goodvibes/sdk/bookmarks/<timestamp>-<label>.txt.
16
+ * written to ~/.goodvibes/tui/bookmarks/<timestamp>-<label>.txt.
17
17
  */
18
18
  export declare class BookmarkManager {
19
19
  private bookmarks;
@@ -5,7 +5,7 @@ import { logger } from '../utils/logger.js';
5
5
  * BookmarkManager - Tracks bookmarked blocks and saves block content to disk.
6
6
  *
7
7
  * Bookmarks are stored in memory for the session. Saved block content is
8
- * written to ~/.goodvibes/sdk/bookmarks/<timestamp>-<label>.txt.
8
+ * written to ~/.goodvibes/tui/bookmarks/<timestamp>-<label>.txt.
9
9
  */
10
10
  export class BookmarkManager {
11
11
  bookmarks = new Map();
@@ -528,7 +528,7 @@ export const coreTailConfigSettings = [
528
528
  key: 'tools.hooksFile',
529
529
  type: 'string',
530
530
  default: 'hooks.json',
531
- description: 'Hook configuration file name (relative to .goodvibes/sdk/)',
531
+ description: 'Hook configuration file name (relative to .goodvibes/tui/)',
532
532
  },
533
533
  {
534
534
  key: 'wrfc.scoreThreshold',
@@ -309,7 +309,7 @@ export const runtimeSecondaryConfigSettings = [
309
309
  key: 'service.logPath',
310
310
  type: 'string',
311
311
  default: '',
312
- description: 'File path for daemon/service logs (empty = platform default under .goodvibes/sdk/service/)',
312
+ description: 'File path for daemon/service logs (empty = platform default under .goodvibes/tui/service/)',
313
313
  },
314
314
  {
315
315
  key: 'network.outboundTls.mode',
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Scan locations (in order):
8
8
  * 1. Project .mcp/ directory — looks for mcp.json or index.js/index.ts scripts
9
- * 2. ~/.goodvibes/sdk/mcp/ — user-global MCP server definitions
9
+ * 2. ~/.goodvibes/tui/mcp/ — user-global MCP server definitions
10
10
  * 3. Locally installed npx MCP packages (node_modules/.bin/@modelcontextprotocol/*)
11
11
  *
12
12
  * Returns suggested McpServerConfig[] for servers not already in the registry.
@@ -111,13 +111,13 @@ function scanProjectMcpDir(roots, knownNames) {
111
111
  return suggestions;
112
112
  }
113
113
  /**
114
- * Scan ~/.goodvibes/sdk/mcp/ for user-global server scripts.
114
+ * Scan ~/.goodvibes/tui/mcp/ for user-global server scripts.
115
115
  * Looks for:
116
116
  * - <name>/index.js, <name>/server.js, etc.
117
117
  * - <name>.js, <name>.ts standalone scripts
118
118
  */
119
119
  function scanGoodvibesMcpDir(roots, knownNames) {
120
- const mcpDir = join(roots.homeDirectory, '.goodvibes', 'sdk', 'mcp');
120
+ const mcpDir = join(roots.homeDirectory, '.goodvibes', 'tui', 'mcp');
121
121
  if (!existsSync(mcpDir))
122
122
  return [];
123
123
  const suggestions = [];
@@ -157,7 +157,7 @@ function scanGoodvibesMcpDir(roots, knownNames) {
157
157
  }
158
158
  }
159
159
  catch (err) {
160
- logger.debug('[mcp-scanner] Failed to read ~/.goodvibes/sdk/mcp/', { error: summarizeError(err) });
160
+ logger.debug('[mcp-scanner] Failed to read ~/.goodvibes/tui/mcp/', { error: summarizeError(err) });
161
161
  }
162
162
  return suggestions;
163
163
  }
@@ -204,7 +204,7 @@ export async function scanMcpServers(roots, registeredNames = new Set()) {
204
204
  // 1. Project .mcp/ directory
205
205
  locationsScanned++;
206
206
  addSuggestions(scanProjectMcpDir(roots, registeredNames));
207
- // 2. ~/.goodvibes/sdk/mcp/ user-global directory
207
+ // 2. ~/.goodvibes/tui/mcp/ user-global directory
208
208
  locationsScanned++;
209
209
  addSuggestions(scanGoodvibesMcpDir(roots, registeredNames));
210
210
  // 3. Locally installed npx MCP packages
@@ -4,7 +4,7 @@ import { join, dirname } from 'node:path';
4
4
  import { logger } from '../utils/logger.js';
5
5
  import { discoverContextWindows } from '../providers/context-discovery.js';
6
6
  function getPersistedPath(roots) {
7
- return join(roots.homeDirectory, '.goodvibes', 'sdk', 'discovered-providers.json');
7
+ return join(roots.homeDirectory, '.goodvibes', 'tui', 'discovered-providers.json');
8
8
  }
9
9
  /** Load previously discovered providers from disk. Returns empty array if file doesn't exist. */
10
10
  export function loadPersistedProviders(roots) {
@@ -2,8 +2,8 @@
2
2
  * Per-language configuration for CodeIntelligence.
3
3
  *
4
4
  * Config is loaded from (in priority order, higher overrides lower):
5
- * 1. .goodvibes/sdk/languages/{langId}.json (project-level)
6
- * 2. ~/.goodvibes/sdk/languages/{langId}.json (user-level)
5
+ * 1. .goodvibes/tui/languages/{langId}.json (project-level)
6
+ * 2. ~/.goodvibes/tui/languages/{langId}.json (user-level)
7
7
  * 3. Built-in defaults (this file)
8
8
  */
9
9
  import { existsSync, readFileSync } from 'fs';
@@ -88,8 +88,8 @@ function readConfigFile(filePath) {
88
88
  */
89
89
  export function loadLanguageConfigs(roots) {
90
90
  const result = getDefaultConfigs();
91
- const userDir = join(roots.homeDirectory, '.goodvibes', 'sdk', 'languages');
92
- const projectDir = join(roots.workingDirectory, '.goodvibes', 'sdk', 'languages');
91
+ const userDir = join(roots.homeDirectory, '.goodvibes', 'tui', 'languages');
92
+ const projectDir = join(roots.workingDirectory, '.goodvibes', 'tui', 'languages');
93
93
  // Collect all known language IDs (from defaults + scan would go here).
94
94
  // For now we apply overrides only for IDs we already know about.
95
95
  for (const [langId, defaultCfg] of result.entries()) {
@@ -32,7 +32,7 @@ export declare class CodeIntelligence {
32
32
  /**
33
33
  * Initialize all services. Call once at startup.
34
34
  * Loads language configs and registers LSP server commands with LspService
35
- * so that user/project overrides in .goodvibes/sdk/languages/ are respected.
35
+ * so that user/project overrides in .goodvibes/tui/languages/ are respected.
36
36
  */
37
37
  initialize(): Promise<void>;
38
38
  /** Shutdown all owned services for this facade instance. */
@@ -6,7 +6,7 @@
6
6
  * - LSP is optional; falls back to tree-sitter where possible.
7
7
  * - Tree-sitter is optional; falls back to empty arrays/null.
8
8
  * - On initialization, language configs are read and registered with LspService
9
- * so user/project overrides in .goodvibes/sdk/languages/*.json take effect.
9
+ * so user/project overrides in .goodvibes/tui/languages/*.json take effect.
10
10
  */
11
11
  import { resolve } from 'path';
12
12
  import { pathToFileURL, fileURLToPath } from 'url';
@@ -52,7 +52,7 @@ export class CodeIntelligence {
52
52
  /**
53
53
  * Initialize all services. Call once at startup.
54
54
  * Loads language configs and registers LSP server commands with LspService
55
- * so that user/project overrides in .goodvibes/sdk/languages/ are respected.
55
+ * so that user/project overrides in .goodvibes/tui/languages/ are respected.
56
56
  */
57
57
  async initialize() {
58
58
  if (!this.shellPaths) {
@@ -19,7 +19,7 @@ export interface ProfileInfo {
19
19
  /**
20
20
  * ProfileManager - Save and load named SDK host config profiles.
21
21
  *
22
- * Profiles are stored as JSON files in ~/.goodvibes/sdk/profiles/<name>.json.
22
+ * Profiles are stored as JSON files in ~/.goodvibes/tui/profiles/<name>.json.
23
23
  * Only host-surface settings (display, provider, behavior categories) are saved;
24
24
  * permissions and API keys are never included.
25
25
  */
@@ -5,7 +5,7 @@ import { summarizeError } from '../utils/error-display.js';
5
5
  /**
6
6
  * ProfileManager - Save and load named SDK host config profiles.
7
7
  *
8
- * Profiles are stored as JSON files in ~/.goodvibes/sdk/profiles/<name>.json.
8
+ * Profiles are stored as JSON files in ~/.goodvibes/tui/profiles/<name>.json.
9
9
  * Only host-surface settings (display, provider, behavior categories) are saved;
10
10
  * permissions and API keys are never included.
11
11
  */
@@ -0,0 +1,2 @@
1
+ export * from './state-inspector/index.js';
2
+ //# sourceMappingURL=state-inspector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-inspector.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/runtime/inspection/state-inspector.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './state-inspector/index.js';
@@ -3,7 +3,7 @@ import { getDistributedNodeHostContract } from './distributed-runtime-contract.j
3
3
  import { attachDistributedRuntime, getDistributedRuntimeSnapshot, listDistributedRuntimeAudit, listDistributedRuntimePairRequests, listDistributedRuntimePeers, listDistributedRuntimeWork, startDistributedRuntime, } from './distributed-runtime-store.js';
4
4
  import { approveDistributedPairRequest, authenticateDistributedPeerToken, disconnectDistributedPeer, rejectDistributedPairRequest, requestDistributedPairing, revokeDistributedPeerToken, rotateDistributedPeerToken, verifyDistributedPairRequest, heartbeatDistributedPeer, } from './distributed-runtime-pairing.js';
5
5
  import { cancelDistributedWork, claimDistributedWork, completeDistributedWork, enqueueDistributedWork, invokeDistributedPeer, } from './distributed-runtime-work.js';
6
- const STORE_PATH = '.goodvibes/sdk/remote/distributed-runtime.json';
6
+ const STORE_PATH = '.goodvibes/tui/remote/distributed-runtime.json';
7
7
  export class DistributedRuntimeManager {
8
8
  store;
9
9
  pairRequests = new Map();
@@ -2,15 +2,11 @@ export interface ShellPathService {
2
2
  readonly workingDirectory: string;
3
3
  readonly homeDirectory: string;
4
4
  readonly projectGoodVibesRoot: string;
5
- readonly projectSdkRoot: string;
6
5
  readonly userGoodVibesRoot: string;
7
- readonly userSdkRoot: string;
8
6
  expandHomePath(path: string): string;
9
7
  resolveWorkspacePath(path: string): string;
10
8
  resolveProjectPath(...segments: string[]): string;
11
- resolveProjectSdkPath(...segments: string[]): string;
12
9
  resolveUserPath(...segments: string[]): string;
13
- resolveUserSdkPath(...segments: string[]): string;
14
10
  isWithinWorkingDirectory(path: string): boolean;
15
11
  }
16
12
  export interface CreateShellPathServiceOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"shell-paths.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/shell-paths.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,kBAAkB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAClD,qBAAqB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACrD,eAAe,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/C,kBAAkB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAClD,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACjD;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAaD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,gBAAgB,CA0ClB"}
1
+ {"version":3,"file":"shell-paths.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/runtime/shell-paths.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3C,kBAAkB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAClD,eAAe,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/C,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACjD;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAaD,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,gBAAgB,CAoClB"}
@@ -13,9 +13,7 @@ export function createShellPathService(options) {
13
13
  const workingDirectory = requireAbsoluteOwnedRoot(options.workingDirectory, 'workingDirectory');
14
14
  const homeDirectory = requireAbsoluteOwnedRoot(options.homeDirectory, 'homeDirectory');
15
15
  const projectGoodVibesRoot = join(workingDirectory, '.goodvibes');
16
- const projectSdkRoot = join(projectGoodVibesRoot, 'sdk');
17
16
  const userGoodVibesRoot = join(homeDirectory, '.goodvibes');
18
- const userSdkRoot = join(userGoodVibesRoot, 'sdk');
19
17
  const expandHomePath = (path) => {
20
18
  if (path === '~')
21
19
  return homeDirectory;
@@ -37,15 +35,11 @@ export function createShellPathService(options) {
37
35
  workingDirectory,
38
36
  homeDirectory,
39
37
  projectGoodVibesRoot,
40
- projectSdkRoot,
41
38
  userGoodVibesRoot,
42
- userSdkRoot,
43
39
  expandHomePath,
44
40
  resolveWorkspacePath,
45
41
  resolveProjectPath: (...segments) => join(projectGoodVibesRoot, ...segments),
46
- resolveProjectSdkPath: (...segments) => join(projectSdkRoot, ...segments),
47
42
  resolveUserPath: (...segments) => join(userGoodVibesRoot, ...segments),
48
- resolveUserSdkPath: (...segments) => join(userSdkRoot, ...segments),
49
43
  isWithinWorkingDirectory,
50
44
  };
51
45
  }
@@ -31,7 +31,7 @@ interface TaskSchedulerConfig {
31
31
  /**
32
32
  * TaskScheduler — cron-like task scheduler that runs inside the daemon.
33
33
  *
34
- * Tasks persist to disk (`.goodvibes/sdk/schedules.json`) and survive restarts.
34
+ * Tasks persist to disk (`.goodvibes/tui/schedules.json`) and survive restarts.
35
35
  * Task execution requires an explicit spawnTask callback so runs stay owned by the caller.
36
36
  */
37
37
  export declare class TaskScheduler {
@@ -316,7 +316,7 @@ function countMissedRuns(expr, fromMs, toMs, timezone) {
316
316
  /**
317
317
  * TaskScheduler — cron-like task scheduler that runs inside the daemon.
318
318
  *
319
- * Tasks persist to disk (`.goodvibes/sdk/schedules.json`) and survive restarts.
319
+ * Tasks persist to disk (`.goodvibes/tui/schedules.json`) and survive restarts.
320
320
  * Task execution requires an explicit spawnTask callback so runs stay owned by the caller.
321
321
  */
322
322
  export class TaskScheduler {
@@ -2,7 +2,7 @@
2
2
  * Multi-session Orchestration — Cross-Session Task Registry
3
3
  *
4
4
  * Wraps SessionTaskGraph with persistence to
5
- * `.goodvibes/sdk/sessions/task-graph.json` and reconnect/resume hydration.
5
+ * `.goodvibes/tui/sessions/task-graph.json` and reconnect/resume hydration.
6
6
  *
7
7
  * The registry is the single authoritative source for the cross-session task
8
8
  * graph within a process. Command handlers and sync integrations receive an
@@ -28,7 +28,7 @@ export declare class CrossSessionTaskRegistry {
28
28
  _exitHandler: (() => void) | null;
29
29
  /**
30
30
  * @param baseDir - Project base directory.
31
- * The graph is persisted at `<baseDir>/.goodvibes/sdk/sessions/task-graph.json`.
31
+ * The graph is persisted at `<baseDir>/.goodvibes/tui/sessions/task-graph.json`.
32
32
  */
33
33
  constructor(baseDir: string);
34
34
  /**
@@ -2,7 +2,7 @@
2
2
  * Multi-session Orchestration — Cross-Session Task Registry
3
3
  *
4
4
  * Wraps SessionTaskGraph with persistence to
5
- * `.goodvibes/sdk/sessions/task-graph.json` and reconnect/resume hydration.
5
+ * `.goodvibes/tui/sessions/task-graph.json` and reconnect/resume hydration.
6
6
  *
7
7
  * The registry is the single authoritative source for the cross-session task
8
8
  * graph within a process. Command handlers and sync integrations receive an
@@ -36,10 +36,10 @@ export class CrossSessionTaskRegistry {
36
36
  _exitHandler = null;
37
37
  /**
38
38
  * @param baseDir - Project base directory.
39
- * The graph is persisted at `<baseDir>/.goodvibes/sdk/sessions/task-graph.json`.
39
+ * The graph is persisted at `<baseDir>/.goodvibes/tui/sessions/task-graph.json`.
40
40
  */
41
41
  constructor(baseDir) {
42
- this._dir = join(baseDir, '.goodvibes', 'sdk', 'sessions');
42
+ this._dir = join(baseDir, '.goodvibes', 'tui', 'sessions');
43
43
  this._graphPath = join(this._dir, 'task-graph.json');
44
44
  this._graph = new SessionTaskGraph();
45
45
  this._load();
@@ -84,7 +84,7 @@ export declare const FETCH_TOOL_SCHEMA: {
84
84
  };
85
85
  readonly service: {
86
86
  readonly type: "string";
87
- readonly description: "Named service for automatic credential lookup from the service registry. Services are configured in .goodvibes/sdk/services.json. Use the registry tool or check .goodvibes/sdk/services.json to discover available service names.";
87
+ readonly description: "Named service for automatic credential lookup from the service registry. Services are configured in .goodvibes/tui/services.json. Use the registry tool or check .goodvibes/tui/services.json to discover available service names.";
88
88
  };
89
89
  readonly auth: {
90
90
  readonly type: "object";
@@ -90,7 +90,7 @@ export const FETCH_TOOL_SCHEMA = {
90
90
  },
91
91
  service: {
92
92
  type: 'string',
93
- description: 'Named service for automatic credential lookup from the service registry. Services are configured in .goodvibes/sdk/services.json. Use the registry tool or check .goodvibes/sdk/services.json to discover available service names.',
93
+ description: 'Named service for automatic credential lookup from the service registry. Services are configured in .goodvibes/tui/services.json. Use the registry tool or check .goodvibes/tui/services.json to discover available service names.',
94
94
  },
95
95
  auth: {
96
96
  type: 'object',
@@ -18,7 +18,7 @@ function summarizePacket(record) {
18
18
  }
19
19
  export function createPacketTool(workingDirectory) {
20
20
  const workspaceRoot = resolve(workingDirectory);
21
- const packetsDir = join(workspaceRoot, '.goodvibes', 'sdk');
21
+ const packetsDir = join(workspaceRoot, '.goodvibes', 'tui');
22
22
  const packetsPath = join(packetsDir, 'packets.json');
23
23
  function loadPackets() {
24
24
  try {
@@ -16,7 +16,7 @@ function summarizeQuery(record) {
16
16
  }
17
17
  export function createQueryTool(workingDirectory) {
18
18
  const workspaceRoot = resolve(workingDirectory);
19
- const queriesDir = join(workspaceRoot, '.goodvibes', 'sdk');
19
+ const queriesDir = join(workspaceRoot, '.goodvibes', 'tui');
20
20
  const queriesPath = join(queriesDir, 'queries.json');
21
21
  function loadQueries() {
22
22
  try {
@@ -114,20 +114,20 @@ function fuzzyFilter(items, query) {
114
114
  function getSkillDirs(roots) {
115
115
  const dirs = [
116
116
  join(roots.workingDirectory, '.goodvibes', 'skills'),
117
- join(roots.workingDirectory, '.goodvibes', 'sdk', 'skills'),
117
+ join(roots.workingDirectory, '.goodvibes', 'tui', 'skills'),
118
118
  ];
119
119
  if (roots.homeDirectory) {
120
- dirs.push(join(roots.homeDirectory, '.goodvibes', 'skills'), join(roots.homeDirectory, '.goodvibes', 'sdk', 'skills'));
120
+ dirs.push(join(roots.homeDirectory, '.goodvibes', 'skills'), join(roots.homeDirectory, '.goodvibes', 'tui', 'skills'));
121
121
  }
122
122
  return dirs;
123
123
  }
124
124
  function getAgentDirs(roots) {
125
125
  const dirs = [
126
126
  join(roots.workingDirectory, '.goodvibes', 'agents'),
127
- join(roots.workingDirectory, '.goodvibes', 'sdk', 'agents'),
127
+ join(roots.workingDirectory, '.goodvibes', 'tui', 'agents'),
128
128
  ];
129
129
  if (roots.homeDirectory) {
130
- dirs.push(join(roots.homeDirectory, '.goodvibes', 'agents'), join(roots.homeDirectory, '.goodvibes', 'sdk', 'agents'));
130
+ dirs.push(join(roots.homeDirectory, '.goodvibes', 'agents'), join(roots.homeDirectory, '.goodvibes', 'tui', 'agents'));
131
131
  }
132
132
  return dirs;
133
133
  }
@@ -10,10 +10,10 @@ import { materializeMarkdownBody, parseMarkdownFrontmatter, normalizeFrontmatter
10
10
  function getSkillDirs(roots) {
11
11
  const dirs = [
12
12
  join(roots.workingDirectory, '.goodvibes', 'skills'),
13
- join(roots.workingDirectory, '.goodvibes', 'sdk', 'skills'),
13
+ join(roots.workingDirectory, '.goodvibes', 'tui', 'skills'),
14
14
  ];
15
15
  if (roots.homeDirectory) {
16
- dirs.push(join(roots.homeDirectory, '.goodvibes', 'skills'), join(roots.homeDirectory, '.goodvibes', 'sdk', 'skills'));
16
+ dirs.push(join(roots.homeDirectory, '.goodvibes', 'skills'), join(roots.homeDirectory, '.goodvibes', 'tui', 'skills'));
17
17
  }
18
18
  return dirs;
19
19
  }
@@ -13,7 +13,7 @@ function summarizeTeam(team) {
13
13
  };
14
14
  }
15
15
  function teamsPath(storageRoot) {
16
- return join(storageRoot, '.goodvibes', 'sdk', 'teams.json');
16
+ return join(storageRoot, '.goodvibes', 'tui', 'teams.json');
17
17
  }
18
18
  function loadTeams(storageRoot) {
19
19
  const path = teamsPath(storageRoot);
@@ -15,7 +15,7 @@ function summarizeWorklist(record) {
15
15
  };
16
16
  }
17
17
  function worklistsPath(storageRoot) {
18
- return join(storageRoot, '.goodvibes', 'sdk', 'worklists.json');
18
+ return join(storageRoot, '.goodvibes', 'tui', 'worklists.json');
19
19
  }
20
20
  function loadWorklists(storageRoot) {
21
21
  const path = worklistsPath(storageRoot);
@@ -4,7 +4,7 @@ function sortWatchers(watchers) {
4
4
  return [...watchers].sort((a, b) => a.label.localeCompare(b.label) || a.id.localeCompare(b.id));
5
5
  }
6
6
  export function getWatcherStorePath(rootPath) {
7
- return join(rootPath, '.goodvibes', 'sdk', 'watchers.json');
7
+ return join(rootPath, '.goodvibes', 'tui', 'watchers.json');
8
8
  }
9
9
  export function resolveWatcherStorePath(storePath) {
10
10
  if (!storePath) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-sdk",
3
- "version": "0.18.12",
3
+ "version": "0.18.14",
4
4
  "description": "Umbrella GoodVibes SDK with operator, peer, daemon, transport, and runtime-specific integration layers.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",