@pellux/goodvibes-tui 2.0.11 → 2.0.12

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 CHANGED
@@ -4,6 +4,28 @@ All notable changes to GoodVibes TUI.
4
4
 
5
5
  ---
6
6
 
7
+ ## [2.0.12] - 2026-08-07
8
+
9
+ ### Changes
10
+
11
+ - **Post-wake capture ends when the room goes quiet** (platform runtime
12
+ 2.0.12): the silence floor is measured from the room's own ambient level
13
+ in the pre-wake window instead of a fixed constant, so steady background
14
+ noise no longer holds the microphone open to the ceiling. The floor is a
15
+ real setting (`voice.wake.silenceFloorRms`, 0 = adaptive), and
16
+ `voice.wake.captureMaxSeconds: 0` genuinely means no hard maximum.
17
+ - **The compiled TUI no longer plays a build-order lottery at load**
18
+ (platform runtime 2.0.13): the runtime barrel read over a hundred values
19
+ off the SDK's runtime namespace objects at module scope, and the
20
+ single-file compiler emits module bodies in an order that varies
21
+ build-to-build — on some builds such a read landed before the module that
22
+ defines the binding and the binary died at load with a ReferenceError.
23
+ Every one of those reads is now a grouped live re-export from the SDK's
24
+ registered runtime subpaths, and the shared post-build check fails any
25
+ artifact that carries the eager pattern, even one that happened to boot.
26
+ - Bundled daemon floor moves to 1.28.16; the exec sandbox's
27
+ self-description now names the built-in daemon and settings tools.
28
+
7
29
  ## [2.0.11] - 2026-08-06
8
30
 
9
31
  ### Changes
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml/badge.svg)](https://github.com/mgd34msu/goodvibes-tui/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Version](https://img.shields.io/badge/version-2.0.11-blue.svg)](https://github.com/mgd34msu/goodvibes-tui)
5
+ [![Version](https://img.shields.io/badge/version-2.0.12-blue.svg)](https://github.com/mgd34msu/goodvibes-tui)
6
6
 
7
7
  GoodVibes is a terminal console for coding and operations work with an AI model. You run `goodvibes` in a project directory and get a full-screen terminal app where you talk to a model that can read and edit your files, run shell commands, search the web, and hand work off to background agents — asking your permission before anything that writes or executes. It talks to many model providers (OpenAI, Anthropic, Gemini, Bedrock, Copilot, OpenRouter and other OpenAI-compatible gateways, plus local servers like Ollama and LM Studio that it finds on startup), keeps its settings, sessions, and secrets on your own machine, and shows you the token count and running cost of every turn. Alongside the conversation, panels turn background work — running agents, git state, diffs, tokens, cost — into live control rooms.
8
8
 
@@ -3,7 +3,7 @@
3
3
  "product": {
4
4
  "id": "goodvibes",
5
5
  "surface": "operator",
6
- "version": "2.0.11"
6
+ "version": "2.0.13"
7
7
  },
8
8
  "auth": {
9
9
  "modes": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-tui",
3
- "version": "2.0.11",
3
+ "version": "2.0.12",
4
4
  "description": "Terminal-native GoodVibes client for coding, operations, knowledge and channel workflows — a pure client of the GoodVibes daemon.",
5
5
  "type": "module",
6
6
  "main": "src/main.ts",
@@ -95,11 +95,11 @@
95
95
  "@anthropic-ai/bedrock-sdk": "^0.29.1",
96
96
  "@anthropic-ai/sdk": "^0.92.0",
97
97
  "@ast-grep/napi": "^0.42.0",
98
- "@pellux/goodvibes-sdk": "2.0.11",
99
- "@pellux/goodvibes-terminal-shell": "2.0.11",
98
+ "@pellux/goodvibes-sdk": "2.0.13",
99
+ "@pellux/goodvibes-terminal-shell": "2.0.13",
100
100
  "bash-language-server": "^5.6.0",
101
101
  "fuse.js": "^7.1.0",
102
- "@pellux/goodvibes-daemon": "1.28.13",
102
+ "@pellux/goodvibes-daemon": "1.28.16",
103
103
  "graphql": "^16.13.2",
104
104
  "jszip": "^3.10.1",
105
105
  "node-edge-tts": "^1.2.10",
@@ -6,13 +6,15 @@
6
6
  * local import surface used by the app.
7
7
  */
8
8
 
9
- import {
10
- bootstrap,
11
- operations,
12
- security,
13
- shell,
14
- transport,
15
- } from '@pellux/goodvibes-sdk/platform/runtime';
9
+ // No runtime namespace objects are imported as values here: an eager
10
+ // `export const X = ns.X` compiles to a top-level property read off a lazy
11
+ // namespace object, and Bun's single-file compiler orders module bodies
12
+ // nondeterministically — on some builds the read lands before the defining
13
+ // module and the compiled binary dies at load with a ReferenceError. Every
14
+ // value below is a grouped live re-export from the SDK's registered runtime
15
+ // subpaths instead (exactly how the operations block below fixed the first
16
+ // bite of this class); the toolchain post-build-smoke scans compiled
17
+ // artifacts for the eager pattern and fails the build if one returns.
16
18
  import { existsSync, statSync } from 'node:fs';
17
19
  import { join, resolve } from 'node:path';
18
20
  import type {
@@ -71,36 +73,39 @@ export type {
71
73
  WorkflowEvent,
72
74
  } from '@pellux/goodvibes-sdk/events';
73
75
 
74
- // Bootstrap compatibility aliases.
75
- export const scheduleBackgroundMcpDiscovery = bootstrap.scheduleBackgroundMcpDiscovery;
76
- export const startBackgroundProviderDiscovery = bootstrap.startBackgroundProviderDiscovery;
77
- export const startBackgroundProviderRegistration = bootstrap.startBackgroundProviderDiscovery;
78
- export const loadRuntimeSystemPrompt = bootstrap.loadRuntimeSystemPrompt;
79
- export const loadBootstrapSystemPrompt = bootstrap.loadRuntimeSystemPrompt;
80
- export const restoreRuntimeModel = bootstrap.restoreRuntimeModel;
81
- export const restoreSavedModel = bootstrap.restoreRuntimeModel;
82
- export const synchronizeConfiguredServices = bootstrap.synchronizeConfiguredServices;
83
- export const syncConfiguredServices = bootstrap.synchronizeConfiguredServices;
84
- export const registerBootstrapRuntimeEvents = bootstrap.registerBootstrapRuntimeEvents;
85
- export const registerHostRuntimeEvents = bootstrap.registerHostRuntimeEvents;
86
- export const startHostServices = bootstrap.startHostServices;
87
- export const startExternalServices = bootstrap.startHostServices;
88
- export const registerBootstrapHookBridge = bootstrap.registerBootstrapHookBridge;
89
- export const createDeferredStartupCoordinator = bootstrap.createDeferredStartupCoordinator;
90
- export const shutdownRuntime = bootstrap.shutdownRuntime;
91
- export const saveSession = bootstrap.saveSession;
92
- export const fireSessionStart = bootstrap.fireSessionStart;
93
- export const createDirectTransportServices = bootstrap.createDirectTransportServices;
94
- export const createOperatorClientServices = bootstrap.createOperatorClientServices;
95
- export const createPeerClientDependencies = bootstrap.createPeerClientDependencies;
96
- export const createRuntimeFoundationClients = bootstrap.createRuntimeFoundationClients;
97
- export const createOperatorClient = bootstrap.createOperatorClient;
98
- export const createPeerClient = bootstrap.createPeerClient;
99
- export const createRuntimeProviderApi = bootstrap.createRuntimeProviderApi;
100
- export const createRuntimeKnowledgeApi = bootstrap.createRuntimeKnowledgeApi;
101
- export const createRuntimeHookApi = bootstrap.createRuntimeHookApi;
102
- export const createRuntimeMcpApi = bootstrap.createRuntimeMcpApi;
103
- export const createRuntimeOpsApi = bootstrap.createRuntimeOpsApi;
76
+ // Bootstrap compatibility aliases — grouped live re-exports (see the header
77
+ // comment for why these must not be eager namespace reads).
78
+ export {
79
+ scheduleBackgroundMcpDiscovery,
80
+ startBackgroundProviderDiscovery,
81
+ startBackgroundProviderDiscovery as startBackgroundProviderRegistration,
82
+ loadRuntimeSystemPrompt,
83
+ loadRuntimeSystemPrompt as loadBootstrapSystemPrompt,
84
+ restoreRuntimeModel,
85
+ restoreRuntimeModel as restoreSavedModel,
86
+ synchronizeConfiguredServices,
87
+ synchronizeConfiguredServices as syncConfiguredServices,
88
+ registerBootstrapRuntimeEvents,
89
+ registerHostRuntimeEvents,
90
+ startHostServices,
91
+ startHostServices as startExternalServices,
92
+ registerBootstrapHookBridge,
93
+ createDeferredStartupCoordinator,
94
+ shutdownRuntime,
95
+ saveSession,
96
+ fireSessionStart,
97
+ createDirectTransportServices,
98
+ createOperatorClientServices,
99
+ createPeerClientDependencies,
100
+ createRuntimeFoundationClients,
101
+ createOperatorClient,
102
+ createPeerClient,
103
+ createRuntimeProviderApi,
104
+ createRuntimeKnowledgeApi,
105
+ createRuntimeHookApi,
106
+ createRuntimeMcpApi,
107
+ createRuntimeOpsApi,
108
+ } from '@pellux/goodvibes-sdk/platform/runtime/bootstrap';
104
109
 
105
110
  export type BackgroundRuntimeTaskHandle = Bootstrap.BackgroundRuntimeTaskHandle;
106
111
  export type BackgroundMcpDiscoveryOptions = Bootstrap.BackgroundMcpDiscoveryOptions;
@@ -130,46 +135,48 @@ export type OperatorClient = Bootstrap.OperatorClient;
130
135
  export type PeerClient = Bootstrap.PeerClient;
131
136
  export type OpsApi = Bootstrap.OpsApi;
132
137
 
133
- // Transport compatibility aliases.
134
- export const createDirectTransport = transport.createDirectTransport;
135
- export const createDirectTransportFromServices = transport.createDirectTransportFromServices;
136
- export const createRuntimeDirectTransport = transport.createRuntimeDirectTransport;
137
- export const createDirectClientTransport = transport.createDirectClientTransport;
138
- export const createHttpTransport = transport.createHttpTransport;
139
- export const createClientTransport = transport.createClientTransport;
140
- export const buildUrl = transport.buildUrl;
141
- export const createTransportPaths = transport.createTransportPaths;
142
- export const normalizeBaseUrl = transport.normalizeBaseUrl;
143
- export const createFetch = transport.createFetch;
144
- export const createHttpJsonTransport = transport.createHttpJsonTransport;
145
- export const createJsonInit = transport.createJsonInit;
146
- export const createJsonRequestInit = transport.createJsonRequestInit;
147
- export const readJsonBody = transport.readJsonBody;
148
- export const requestJsonRaw = transport.requestJsonRaw;
149
- export const requestJson = transport.requestJsonRaw;
150
- export const createRealtimeTransport = transport.createRealtimeTransport;
151
- export const invokeContractRoute = transport.invokeContractRoute;
152
- export const openContractRouteStream = transport.openContractRouteStream;
153
- export const requireContractRoute = transport.requireContractRoute;
154
- export const isAbortError = transport.isAbortError;
155
- export const openServerSentEventStream = transport.openServerSentEventStream;
138
+ // Transport compatibility aliases — grouped live re-exports.
139
+ export {
140
+ createDirectTransport,
141
+ createDirectTransportFromServices,
142
+ createRuntimeDirectTransport,
143
+ createDirectClientTransport,
144
+ createHttpTransport,
145
+ createClientTransport,
146
+ buildUrl,
147
+ createTransportPaths,
148
+ normalizeBaseUrl,
149
+ createFetch,
150
+ createHttpJsonTransport,
151
+ createJsonInit,
152
+ createJsonRequestInit,
153
+ readJsonBody,
154
+ requestJsonRaw,
155
+ requestJsonRaw as requestJson,
156
+ createRealtimeTransport,
157
+ invokeContractRoute,
158
+ openContractRouteStream,
159
+ requireContractRoute,
160
+ isAbortError,
161
+ openServerSentEventStream,
162
+ createOperatorRemoteClient,
163
+ createPeerRemoteClient,
164
+ buildEventSourceUrl,
165
+ buildWebSocketUrl,
166
+ createEventSourceConnector,
167
+ createRemoteDomainEvents,
168
+ createRemoteRuntimeEvents,
169
+ createRemoteUiRuntimeEvents,
170
+ createWebSocketConnector,
171
+ applyOutboundTlsToFetchInit,
172
+ createNetworkFetch,
173
+ GlobalNetworkTransportInstaller,
174
+ inspectOutboundTls,
175
+ } from '@pellux/goodvibes-sdk/platform/runtime/transport';
156
176
  // Re-exported here because bootstrap.ts — the one place an exit can await
157
177
  // anything — sits on the 800-line per-file gate, so it reaches this through the
158
178
  // import block it already has rather than a second import line.
159
179
  export { leaveHostedSessionOnExit } from './client/hosted-exit.ts';
160
- export const createOperatorRemoteClient = transport.createOperatorRemoteClient;
161
- export const createPeerRemoteClient = transport.createPeerRemoteClient;
162
- export const buildEventSourceUrl = transport.buildEventSourceUrl;
163
- export const buildWebSocketUrl = transport.buildWebSocketUrl;
164
- export const createEventSourceConnector = transport.createEventSourceConnector;
165
- export const createRemoteDomainEvents = transport.createRemoteDomainEvents;
166
- export const createRemoteRuntimeEvents = transport.createRemoteRuntimeEvents;
167
- export const createRemoteUiRuntimeEvents = transport.createRemoteUiRuntimeEvents;
168
- export const createWebSocketConnector = transport.createWebSocketConnector;
169
- export const applyOutboundTlsToFetchInit = transport.applyOutboundTlsToFetchInit;
170
- export const createNetworkFetch = transport.createNetworkFetch;
171
- export const GlobalNetworkTransportInstaller = transport.GlobalNetworkTransportInstaller;
172
- export const inspectOutboundTls = transport.inspectOutboundTls;
173
180
 
174
181
  export type DirectTransport = Transport.DirectTransport;
175
182
  export type DirectClientTransport<TOperator = unknown, TPeer = unknown> = Transport.DirectClientTransport<TOperator, TPeer>;
@@ -414,37 +421,41 @@ export type ToolExecutionPhase = Operations.ToolExecutionPhase;
414
421
  export type PhaseResult = Operations.PhaseResult;
415
422
  export type ToolExecutionRecord = Operations.ToolExecutionRecord;
416
423
 
417
- // Runtime shell compatibility aliases.
418
- export const createShellPathService = shell.createShellPathService;
419
- export const createShellPlanRuntime = shell.createShellPlanRuntime;
420
- export const createShellRemoteCommandService = shell.createShellRemoteCommandService;
421
- export const createBootstrapCommandShellServices = shell.createBootstrapCommandShellServices;
422
- export const resolveSurfaceDirectory = shell.resolveSurfaceDirectory;
423
- export const classifySystemMessageKind = shell.classifySystemMessageKind;
424
- export const classifySystemMessagePriority = shell.classifySystemMessagePriority;
425
- export const defaultSystemMessageTarget = shell.defaultSystemMessageTarget;
426
- export const resolveSystemMessageDelivery = shell.resolveSystemMessageDelivery;
427
- export const buildProviderAccountSnapshot = shell.buildProviderAccountSnapshot;
428
- export const loadEcosystemCatalog = shell.loadEcosystemCatalog;
429
- export const searchEcosystemCatalog = shell.searchEcosystemCatalog;
430
- export const exportEcosystemCatalogBundle = shell.exportEcosystemCatalogBundle;
431
- export const importEcosystemCatalogBundle = shell.importEcosystemCatalogBundle;
432
- export const inspectEcosystemCatalogBundle = shell.inspectEcosystemCatalogBundle;
433
- export const inspectInstalledEcosystemEntry = shell.inspectInstalledEcosystemEntry;
434
- export const installEcosystemCatalogEntry = shell.installEcosystemCatalogEntry;
435
- export const listEcosystemInstallBackups = shell.listEcosystemInstallBackups;
436
- export const listInstalledEcosystemEntries = shell.listInstalledEcosystemEntries;
437
- export const removeEcosystemCatalogEntry = shell.removeEcosystemCatalogEntry;
438
- export const reviewEcosystemCatalogEntry = shell.reviewEcosystemCatalogEntry;
439
- export const rollbackInstalledEcosystemEntry = shell.rollbackInstalledEcosystemEntry;
440
- export const uninstallEcosystemCatalogEntry = shell.uninstallEcosystemCatalogEntry;
441
- export const updateInstalledEcosystemEntry = shell.updateInstalledEcosystemEntry;
442
- export const upsertEcosystemCatalogEntry = shell.upsertEcosystemCatalogEntry;
443
- export const summarizeWorktreeOwnership = shell.summarizeWorktreeOwnership;
444
- export const WorktreeRegistry = shell.WorktreeRegistry;
445
- export const listPersistedWorktreeMeta = shell.listPersistedWorktreeMeta;
446
- export const getPersistedWorktreeMeta = shell.getPersistedWorktreeMeta;
447
- export const reviewWorktreeAttachments = shell.reviewWorktreeAttachments;
424
+ // Runtime shell compatibility aliases — grouped live re-exports.
425
+ // WorktreeRegistry is a class: the value re-export carries its instance type,
426
+ // so the old separate `export type WorktreeRegistry` alias is gone (TS2484).
427
+ export {
428
+ createShellPathService,
429
+ createShellPlanRuntime,
430
+ createShellRemoteCommandService,
431
+ createBootstrapCommandShellServices,
432
+ resolveSurfaceDirectory,
433
+ classifySystemMessageKind,
434
+ classifySystemMessagePriority,
435
+ defaultSystemMessageTarget,
436
+ resolveSystemMessageDelivery,
437
+ buildProviderAccountSnapshot,
438
+ loadEcosystemCatalog,
439
+ searchEcosystemCatalog,
440
+ exportEcosystemCatalogBundle,
441
+ importEcosystemCatalogBundle,
442
+ inspectEcosystemCatalogBundle,
443
+ inspectInstalledEcosystemEntry,
444
+ installEcosystemCatalogEntry,
445
+ listEcosystemInstallBackups,
446
+ listInstalledEcosystemEntries,
447
+ removeEcosystemCatalogEntry,
448
+ reviewEcosystemCatalogEntry,
449
+ rollbackInstalledEcosystemEntry,
450
+ uninstallEcosystemCatalogEntry,
451
+ updateInstalledEcosystemEntry,
452
+ upsertEcosystemCatalogEntry,
453
+ summarizeWorktreeOwnership,
454
+ WorktreeRegistry,
455
+ listPersistedWorktreeMeta,
456
+ getPersistedWorktreeMeta,
457
+ reviewWorktreeAttachments,
458
+ } from '@pellux/goodvibes-sdk/platform/runtime/shell';
448
459
 
449
460
  export type MutableRuntimeState = Shell.MutableRuntimeState;
450
461
  export type ProviderAccountRecord = Shell.ProviderAccountRecord;
@@ -459,7 +470,6 @@ export type CommandPlatformShellServices = Shell.CommandPlatformShellServices;
459
470
  export type CommandWorkspaceShellServices = Shell.CommandWorkspaceShellServices;
460
471
  export type RemoteCommandService = Shell.RemoteCommandService;
461
472
  export type PlanRuntimeService = Shell.PlanRuntimeService;
462
- export type WorktreeRegistry = Shell.WorktreeRegistry;
463
473
  export type WorktreeStatusRecord = Shell.WorktreeStatusRecord;
464
474
  export type ManagedWorktreeMeta = Shell.ManagedWorktreeMeta;
465
475
  export type ShellAgentManagerService = Shell.ShellAgentManagerService;
@@ -476,51 +486,46 @@ export type EcosystemCatalogBundle = Shell.EcosystemCatalogBundle;
476
486
  export type EcosystemCatalogEntry = Shell.EcosystemCatalogEntry;
477
487
  export type EcosystemEntryKind = Shell.EcosystemEntryKind;
478
488
 
479
- // Runtime security compatibility aliases.
480
- export const buildAuthInspectionSnapshot = security.buildAuthInspectionSnapshot;
481
- export const inspectProviderAuth = security.inspectProviderAuth;
482
- export const DivergenceDashboard = security.DivergenceDashboard;
483
- export const DivergenceGateError = security.DivergenceGateError;
484
- export const LayeredPolicyEvaluator = security.LayeredPolicyEvaluator;
485
- export const PermissionSimulator = security.PermissionSimulator;
486
- export const PolicyRegistry = security.PolicyRegistry;
487
- export const PolicyRuntimeState = security.PolicyRuntimeState;
488
- export const buildDefaultPolicySimulationScenarios = security.buildDefaultPolicySimulationScenarios;
489
- export const buildPermissionRuleSuggestions = security.buildPermissionRuleSuggestions;
490
- export const buildPolicyPreflightReview = security.buildPolicyPreflightReview;
491
- export const createPermissionEvaluator = security.createPermissionEvaluator;
492
- export const createPermissionSimulator = security.createPermissionSimulator;
493
- export const createUnsignedBundle = security.createUnsignedBundle;
494
- export const lintPolicyConfig = security.lintPolicyConfig;
495
- export const loadPolicyBundle = security.loadPolicyBundle;
496
- export const runPolicySimulationScenarios = security.runPolicySimulationScenarios;
497
- export const buildDenialExplanation = security.buildDenialExplanation;
498
- export const canonicalize = security.canonicalize;
499
- export const classifyCommand = security.classifyCommand;
500
- export const classifySegment = security.classifySegment;
501
- export const collectCommandNodes = security.collectCommandNodes;
502
- export const evaluateCommandAST = security.evaluateCommandAST;
503
- export const evaluateSegmentNode = security.evaluateSegmentNode;
504
- export const higherPriority = security.higherPriority;
505
- export const parseAST = security.parseAST;
506
- export const parseCommandAST = security.parseCommandAST;
507
- export const tokenize = security.tokenize;
508
- export const PolicySignatureError = security.PolicySignatureError;
509
- export const canonicalise = security.canonicalise;
510
- export const runSafetyChecks = security.runSafetyChecks;
511
- export const signBundle = security.signBundle;
512
- export const verifyBundle = security.verifyBundle;
513
- export const MAX_INPUT_LENGTH = security.MAX_INPUT_LENGTH;
514
- export const MAX_TOKEN_COUNT = security.MAX_TOKEN_COUNT;
515
-
516
- // Instance-type companions for the class aliases above. `export const X = ns.X`
517
- // re-exports only the value, so `X` is unusable in type position (TS2749/TS2694).
518
- // These declaration-merge the instance type back onto the same name.
519
- export type DivergenceDashboard = InstanceType<typeof security.DivergenceDashboard>;
520
- export type DivergenceGateError = InstanceType<typeof security.DivergenceGateError>;
521
- export type LayeredPolicyEvaluator = InstanceType<typeof security.LayeredPolicyEvaluator>;
522
- export type PermissionSimulator = InstanceType<typeof security.PermissionSimulator>;
523
- export type PolicySignatureError = InstanceType<typeof security.PolicySignatureError>;
489
+ // Runtime security compatibility aliases — grouped live re-exports. The class
490
+ // re-exports (DivergenceDashboard, PolicyRegistry, …) carry their instance
491
+ // types, so the old separate type companions for those names are gone.
492
+ export {
493
+ buildAuthInspectionSnapshot,
494
+ inspectProviderAuth,
495
+ DivergenceDashboard,
496
+ DivergenceGateError,
497
+ LayeredPolicyEvaluator,
498
+ PermissionSimulator,
499
+ PolicyRegistry,
500
+ PolicyRuntimeState,
501
+ buildDefaultPolicySimulationScenarios,
502
+ buildPermissionRuleSuggestions,
503
+ buildPolicyPreflightReview,
504
+ createPermissionEvaluator,
505
+ createPermissionSimulator,
506
+ createUnsignedBundle,
507
+ lintPolicyConfig,
508
+ loadPolicyBundle,
509
+ runPolicySimulationScenarios,
510
+ buildDenialExplanation,
511
+ canonicalize,
512
+ classifyCommand,
513
+ classifySegment,
514
+ collectCommandNodes,
515
+ evaluateCommandAST,
516
+ evaluateSegmentNode,
517
+ higherPriority,
518
+ parseAST,
519
+ parseCommandAST,
520
+ tokenize,
521
+ PolicySignatureError,
522
+ canonicalise,
523
+ runSafetyChecks,
524
+ signBundle,
525
+ verifyBundle,
526
+ MAX_INPUT_LENGTH,
527
+ MAX_TOKEN_COUNT,
528
+ } from '@pellux/goodvibes-sdk/platform/runtime/security';
524
529
 
525
530
  export type AuthInspectionSnapshot = Security.AuthInspectionSnapshot;
526
531
  export type ProviderAuthInspection = Security.ProviderAuthInspection;
@@ -533,8 +538,6 @@ export type PolicyDiffResult = Security.PolicyDiffResult;
533
538
  export type PolicyLintFinding = Security.PolicyLintFinding;
534
539
  export type PolicyPreflightReview = Security.PolicyPreflightReview;
535
540
  export type PolicyRule = Security.PolicyRule;
536
- export type PolicyRegistry = Security.PolicyRegistry;
537
- export type PolicyRuntimeState = Security.PolicyRuntimeState;
538
541
  export type PolicySimulationSummary = Security.PolicySimulationSummary;
539
542
  export type PermissionAuditEntry = Security.PermissionAuditEntry;
540
543
  export type CommandClassification = Security.CommandClassification;
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 = '2.0.11';
9
+ let _version = '2.0.12';
10
10
  try {
11
11
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', 'package.json'), 'utf-8'));
12
12
  // Only trust a version read from OUR OWN package.json. A Bun single-file