@bubblebrain-ai/bubble 0.0.35 → 0.0.37

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 (144) hide show
  1. package/README.md +27 -7
  2. package/dist/agent/categories.d.ts +66 -2
  3. package/dist/agent/categories.js +120 -19
  4. package/dist/agent/discovery-barrier.js +1 -1
  5. package/dist/agent/profiles.d.ts +1 -0
  6. package/dist/agent/profiles.js +25 -11
  7. package/dist/agent/routing-catalog.d.ts +113 -0
  8. package/dist/agent/routing-catalog.js +240 -0
  9. package/dist/agent/workflow/control.d.ts +14 -0
  10. package/dist/agent/workflow/control.js +30 -9
  11. package/dist/agent.d.ts +75 -5
  12. package/dist/agent.js +313 -61
  13. package/dist/approval/controller.js +28 -0
  14. package/dist/approval/tool-helper.js +2 -0
  15. package/dist/approval/types.d.ts +21 -1
  16. package/dist/cli.d.ts +1 -1
  17. package/dist/cli.js +2 -1
  18. package/dist/config.d.ts +4 -0
  19. package/dist/config.js +4 -0
  20. package/dist/context/compact-llm.d.ts +2 -2
  21. package/dist/external-runtime/grok-acp.d.ts +56 -0
  22. package/dist/external-runtime/grok-acp.js +386 -0
  23. package/dist/external-runtime/grok-binary.d.ts +25 -0
  24. package/dist/external-runtime/grok-binary.js +108 -0
  25. package/dist/external-runtime/grok-errors.d.ts +7 -0
  26. package/dist/external-runtime/grok-errors.js +15 -0
  27. package/dist/external-runtime/grok-input-policy.d.ts +58 -0
  28. package/dist/external-runtime/grok-input-policy.js +52 -0
  29. package/dist/external-runtime/grok-ndjson.d.ts +14 -0
  30. package/dist/external-runtime/grok-ndjson.js +193 -0
  31. package/dist/external-runtime/grok-network.d.ts +15 -0
  32. package/dist/external-runtime/grok-network.js +81 -0
  33. package/dist/external-runtime/grok-preflight.d.ts +28 -0
  34. package/dist/external-runtime/grok-preflight.js +194 -0
  35. package/dist/external-runtime/grok-process.d.ts +26 -0
  36. package/dist/external-runtime/grok-process.js +184 -0
  37. package/dist/external-runtime/grok-profile.d.ts +32 -0
  38. package/dist/external-runtime/grok-profile.js +419 -0
  39. package/dist/external-runtime/grok-provider.d.ts +31 -0
  40. package/dist/external-runtime/grok-provider.js +41 -0
  41. package/dist/external-runtime/grok-runtime.d.ts +91 -0
  42. package/dist/external-runtime/grok-runtime.js +882 -0
  43. package/dist/external-runtime/index.d.ts +13 -0
  44. package/dist/external-runtime/index.js +13 -0
  45. package/dist/external-runtime/session-policy.d.ts +11 -0
  46. package/dist/external-runtime/session-policy.js +30 -0
  47. package/dist/external-runtime/types.d.ts +65 -0
  48. package/dist/external-runtime/types.js +1 -0
  49. package/dist/feishu/agent-host/approval-card.js +21 -0
  50. package/dist/feishu/agent-host/run-driver.js +19 -3
  51. package/dist/feishu/serve.js +1 -0
  52. package/dist/goal/tools.d.ts +6 -3
  53. package/dist/goal/tools.js +7 -19
  54. package/dist/main.js +105 -27
  55. package/dist/memory/db.d.ts +2 -0
  56. package/dist/memory/db.js +10 -0
  57. package/dist/memory/index.d.ts +1 -0
  58. package/dist/memory/index.js +1 -0
  59. package/dist/memory/phase1.js +14 -2
  60. package/dist/memory/phase2.js +21 -2
  61. package/dist/memory/prompts.js +1 -1
  62. package/dist/memory/session-policy.d.ts +25 -0
  63. package/dist/memory/session-policy.js +55 -0
  64. package/dist/memory/storage.d.ts +1 -0
  65. package/dist/memory/storage.js +13 -0
  66. package/dist/model-catalog.d.ts +18 -0
  67. package/dist/model-catalog.js +87 -41
  68. package/dist/model-config.d.ts +3 -1
  69. package/dist/model-config.js +11 -0
  70. package/dist/oauth/grok.d.ts +25 -0
  71. package/dist/oauth/grok.js +218 -0
  72. package/dist/oauth/index.d.ts +1 -0
  73. package/dist/oauth/index.js +1 -0
  74. package/dist/oauth/storage.d.ts +9 -0
  75. package/dist/oauth/storage.js +25 -0
  76. package/dist/orchestrator/default-hooks.js +17 -7
  77. package/dist/prompt/compose.d.ts +3 -0
  78. package/dist/prompt/compose.js +3 -0
  79. package/dist/prompt/delegation.js +22 -3
  80. package/dist/prompt/environment.js +0 -4
  81. package/dist/prompt/reminders.d.ts +0 -1
  82. package/dist/prompt/reminders.js +1 -11
  83. package/dist/prompt/routing.d.ts +14 -0
  84. package/dist/prompt/routing.js +71 -0
  85. package/dist/prompt/runtime.js +1 -1
  86. package/dist/prompt/task-reminders.d.ts +19 -0
  87. package/dist/prompt/task-reminders.js +49 -0
  88. package/dist/provider-ai-sdk.js +2 -2
  89. package/dist/provider-grok.d.ts +26 -0
  90. package/dist/provider-grok.js +59 -0
  91. package/dist/provider-openai-codex.d.ts +17 -1
  92. package/dist/provider-openai-codex.js +101 -29
  93. package/dist/provider-registry.d.ts +72 -0
  94. package/dist/provider-registry.js +336 -59
  95. package/dist/provider-transform.d.ts +1 -1
  96. package/dist/provider-transform.js +28 -5
  97. package/dist/provider.d.ts +3 -0
  98. package/dist/provider.js +14 -0
  99. package/dist/session-types.d.ts +19 -1
  100. package/dist/session.d.ts +1 -0
  101. package/dist/session.js +4 -0
  102. package/dist/slash-commands/commands.js +224 -14
  103. package/dist/slash-commands/types.d.ts +14 -1
  104. package/dist/system-prompt.d.ts +2 -0
  105. package/dist/tools/agent-lifecycle.js +9 -11
  106. package/dist/tools/bash.js +1 -1
  107. package/dist/tools/child-tools.js +2 -0
  108. package/dist/tools/index.d.ts +2 -2
  109. package/dist/tools/index.js +7 -5
  110. package/dist/tools/lsp.js +1 -0
  111. package/dist/tools/memory.d.ts +7 -2
  112. package/dist/tools/memory.js +28 -43
  113. package/dist/tools/server.js +4 -0
  114. package/dist/tools/tool-search.d.ts +1 -1
  115. package/dist/tools/tool-search.js +23 -3
  116. package/dist/tui/model-switch.d.ts +7 -0
  117. package/dist/tui/model-switch.js +15 -5
  118. package/dist/tui-ink/app.d.ts +3 -1
  119. package/dist/tui-ink/app.js +649 -233
  120. package/dist/tui-ink/approval/approval-dialog.js +36 -0
  121. package/dist/tui-ink/composer-buffer.d.ts +55 -0
  122. package/dist/tui-ink/composer-buffer.js +317 -0
  123. package/dist/tui-ink/footer.d.ts +1 -0
  124. package/dist/tui-ink/footer.js +7 -2
  125. package/dist/tui-ink/input-box.d.ts +35 -1
  126. package/dist/tui-ink/input-box.js +215 -122
  127. package/dist/tui-ink/message-list.js +5 -5
  128. package/dist/tui-ink/model-picker.d.ts +61 -4
  129. package/dist/tui-ink/model-picker.js +486 -133
  130. package/dist/tui-ink/paste-operation-tracker.d.ts +13 -0
  131. package/dist/tui-ink/paste-operation-tracker.js +25 -0
  132. package/dist/tui-ink/run.d.ts +3 -0
  133. package/dist/tui-ink/run.js +1 -1
  134. package/dist/tui-ink/subagent-view.d.ts +31 -0
  135. package/dist/tui-ink/subagent-view.js +82 -1
  136. package/dist/types.d.ts +5 -5
  137. package/dist/types.js +1 -1
  138. package/dist/variant/thinking-level.d.ts +2 -2
  139. package/dist/variant/thinking-level.js +2 -1
  140. package/dist/variant/variant-resolver.d.ts +9 -0
  141. package/dist/variant/variant-resolver.js +17 -0
  142. package/package.json +2 -1
  143. package/dist/tools/task.d.ts +0 -2
  144. package/dist/tools/task.js +0 -58
@@ -0,0 +1,41 @@
1
+ /** Canonical product/picker identity for the subscription-backed runtime. */
2
+ export const GROK_SUBSCRIPTION_PROVIDER_ID = "grok-subscription";
3
+ /** Short command alias accepted by `/provider`, `/login`, and `/logout`. */
4
+ export const GROK_SUBSCRIPTION_COMMAND_ALIAS = "grok";
5
+ export const GROK_SUBSCRIPTION_PROVIDER_NAME = "Grok Subscription";
6
+ export const GROK_SUBSCRIPTION_PROVIDER_LABEL = "Grok Subscription [OAuth]";
7
+ export const GROK_SUBSCRIPTION_PROVIDER = Object.freeze({
8
+ id: GROK_SUBSCRIPTION_PROVIDER_ID,
9
+ commandAlias: GROK_SUBSCRIPTION_COMMAND_ALIAS,
10
+ name: GROK_SUBSCRIPTION_PROVIDER_NAME,
11
+ label: GROK_SUBSCRIPTION_PROVIDER_LABEL,
12
+ });
13
+ /** Normalize only Grok's public command alias; unrelated provider IDs pass through. */
14
+ export function normalizeGrokSubscriptionProviderId(providerId) {
15
+ const candidate = providerId.trim().toLowerCase();
16
+ if (candidate === GROK_SUBSCRIPTION_COMMAND_ALIAS || candidate === GROK_SUBSCRIPTION_PROVIDER_ID) {
17
+ return GROK_SUBSCRIPTION_PROVIDER_ID;
18
+ }
19
+ return providerId;
20
+ }
21
+ export function isGrokSubscriptionProviderId(providerId) {
22
+ return providerId !== undefined
23
+ && normalizeGrokSubscriptionProviderId(providerId) === GROK_SUBSCRIPTION_PROVIDER_ID;
24
+ }
25
+ /**
26
+ * Append one canonical Grok row after native provider rows. Existing canonical
27
+ * or command-alias rows are replaced, so independently composed picker lists
28
+ * cannot show Grok twice. This helper is intentionally independent from
29
+ * ProviderRegistry: Grok Subscription remains an external runtime.
30
+ */
31
+ export function withGrokSubscriptionProvider(entries, options = {}) {
32
+ const withoutGrok = entries.filter((entry) => !isGrokSubscriptionProviderId(entry.id));
33
+ return [
34
+ ...withoutGrok,
35
+ {
36
+ id: GROK_SUBSCRIPTION_PROVIDER_ID,
37
+ name: options.label ?? GROK_SUBSCRIPTION_PROVIDER_LABEL,
38
+ enabled: options.enabled ?? true,
39
+ },
40
+ ];
41
+ }
@@ -0,0 +1,91 @@
1
+ import type { AgentEvent } from "../types.js";
2
+ import type { ThinkingLevel } from "../types.js";
3
+ import type { PermissionMode } from "../types.js";
4
+ import type { ApprovalController } from "../approval/types.js";
5
+ import type { ExternalRuntimeManager, ExternalRuntimeRunOptions, ExternalRuntimeSession, ExternalRuntimeModel, ExternalRuntimeModelSelection, ExternalRuntimeStatus } from "./types.js";
6
+ import type { GrokBinaryDependencies } from "./grok-binary.js";
7
+ import { type GrokSpawn } from "./grok-process.js";
8
+ import { type GrokAcpFactory } from "./grok-acp.js";
9
+ import { type GrokNetworkRoute } from "./grok-network.js";
10
+ export declare const GROK_RUNTIME_CAPABILITIES: Readonly<{
11
+ chat: true;
12
+ tools: true;
13
+ memory: false;
14
+ subagents: false;
15
+ plan: false;
16
+ web: false;
17
+ sessionLoad: true;
18
+ workspace: true;
19
+ modelControl: true;
20
+ reasoningControl: true;
21
+ }>;
22
+ export interface GrokRuntimeDependencies extends GrokBinaryDependencies {
23
+ bubbleHome?: string;
24
+ parentEnv?: NodeJS.ProcessEnv;
25
+ spawn?: GrokSpawn;
26
+ acpFactory?: GrokAcpFactory;
27
+ oauthOpener?: GrokOAuthOpener;
28
+ networkResolver?: () => Promise<GrokNetworkRoute>;
29
+ workspace?: string;
30
+ approvalController?: ApprovalController;
31
+ getPermissionMode?: () => PermissionMode;
32
+ }
33
+ export type GrokOAuthOpener = (url: string, signal: AbortSignal) => Promise<void>;
34
+ export declare function grokLoginFailureMessage(diagnostic: string): string;
35
+ export declare class GrokRuntimeManager implements ExternalRuntimeManager {
36
+ private readonly deps;
37
+ private readonly spawn;
38
+ private readonly acpFactory;
39
+ private readonly oauthOpener;
40
+ private readonly profile;
41
+ private readonly workspace;
42
+ private binary?;
43
+ private acp?;
44
+ private lock?;
45
+ private state;
46
+ private currentSessionId?;
47
+ private attachedSessionId?;
48
+ private activeTurn?;
49
+ private nextGeneration;
50
+ private closingSidecar?;
51
+ private loginController?;
52
+ private loginOperation?;
53
+ private sessionLifecyclePhase;
54
+ private networkRoute?;
55
+ private networkRouteOperation?;
56
+ private modelId?;
57
+ private reasoningEffort;
58
+ private modelCache?;
59
+ private readonly activeTools;
60
+ constructor(deps?: GrokRuntimeDependencies);
61
+ private status;
62
+ private ensureNetworkRoute;
63
+ private prepareAndVerify;
64
+ private acquireProfileLock;
65
+ inspect(): Promise<ExternalRuntimeStatus>;
66
+ login(signal?: AbortSignal, onBrowserOpened?: () => void): Promise<void>;
67
+ private performLogin;
68
+ logout(): Promise<void>;
69
+ private ensureConnected;
70
+ private applyAcpModels;
71
+ newSession(): Promise<ExternalRuntimeSession>;
72
+ loadSession(id: string): Promise<ExternalRuntimeSession>;
73
+ hydrateSession(id: string, modelId?: string, reasoningEffort?: ThinkingLevel): Promise<ExternalRuntimeSession>;
74
+ listModels(): Promise<ExternalRuntimeModel[]>;
75
+ getModelSelection(): ExternalRuntimeModelSelection;
76
+ setModel(modelId: string, reasoningEffort?: ThinkingLevel): Promise<ExternalRuntimeModelSelection>;
77
+ private ensureSession;
78
+ run(prompt: string, options?: ExternalRuntimeRunOptions): AsyncIterable<AgentEvent>;
79
+ cancel(sessionId?: string | undefined): Promise<void>;
80
+ private handlePolicyViolation;
81
+ private handleSessionUpdate;
82
+ private handleCrash;
83
+ private closeSidecar;
84
+ private disconnect;
85
+ /**
86
+ * Closes the current sidecar and releases the profile lock. The manager is
87
+ * intentionally reusable: a later new/load/run call starts a fresh sidecar.
88
+ */
89
+ dispose(): Promise<void>;
90
+ }
91
+ export declare function createGrokRuntimeManager(deps?: GrokRuntimeDependencies): GrokRuntimeManager;