@makinbakin/sdk 0.0.0-bootstrap.0 → 0.0.1-rc.1
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/README.md +20 -10
- package/_internal/app/components/integrated-brainstorm/activity.d.ts +23 -0
- package/_internal/app/components/integrated-brainstorm/index.d.ts +6 -1
- package/_internal/app/components/integrated-brainstorm/session.d.ts +16 -0
- package/_internal/app/components/integrated-brainstorm/sse.d.ts +8 -0
- package/_internal/app/components/integrated-brainstorm/types.d.ts +7 -5
- package/_internal/app/components/ui/badge.d.ts +1 -1
- package/_internal/app/components/ui/button.d.ts +1 -1
- package/_internal/core/adapters/runtime/concepts.d.ts +17 -1
- package/_internal/core/adapters/runtime/index.d.ts +1 -1
- package/_internal/core/constants.d.ts +15 -0
- package/_internal/core/content-dir.d.ts +42 -0
- package/_internal/core/generated-version.d.ts +1 -0
- package/_internal/core/logger.d.ts +8 -0
- package/_internal/core/plugin-types.d.ts +66 -5
- package/_internal/core/routing/index.d.ts +1 -1
- package/components/index.d.ts +3 -2
- package/components/index.js +727 -74
- package/hooks/index.d.ts +1 -1
- package/hooks/index.js +10 -0
- package/index.d.ts +8 -8
- package/index.js +327 -0
- package/metadata/index.d.ts +2 -2
- package/package.json +2 -2
- package/routing/index.d.ts +2 -2
- package/routing/index.js +327 -0
- package/slots/index.d.ts +1 -1
- package/types/index.d.ts +77 -3
- package/ui/index.d.ts +2 -2
- package/utils/index.d.ts +6 -1
- package/utils/index.js +269 -1
package/README.md
CHANGED
|
@@ -9,6 +9,12 @@ runtime React + `@makinbakin/sdk/*` are externalized and resolved through
|
|
|
9
9
|
the host's import map — so plugins don't ship a second copy of any of
|
|
10
10
|
them.
|
|
11
11
|
|
|
12
|
+
Full SDK docs:
|
|
13
|
+
|
|
14
|
+
- [SDK overview](https://makinbakin.com/docs/extending/sdk/overview/)
|
|
15
|
+
- [SDK reference](https://makinbakin.com/docs/reference/generated/sdk/)
|
|
16
|
+
- [Build a plugin](https://makinbakin.com/docs/extending/plugins/build/)
|
|
17
|
+
|
|
12
18
|
## Install
|
|
13
19
|
|
|
14
20
|
```sh
|
|
@@ -26,7 +32,7 @@ the actual instances at runtime.
|
|
|
26
32
|
bakin plugins scaffold my-plugin
|
|
27
33
|
cd my-plugin
|
|
28
34
|
bun install
|
|
29
|
-
bakin plugins install .
|
|
35
|
+
bakin plugins install --dev .
|
|
30
36
|
```
|
|
31
37
|
|
|
32
38
|
## Minimal client entry
|
|
@@ -84,17 +90,21 @@ component for a slot via `registerPlugin({ slots: { 'slot-name': Component } })`
|
|
|
84
90
|
|
|
85
91
|
## Sub-path imports
|
|
86
92
|
|
|
87
|
-
The
|
|
93
|
+
The public npm package exposes these sub-paths:
|
|
88
94
|
|
|
89
95
|
| Import path | What it exposes |
|
|
90
96
|
| ------------------------ | -------------------------------------------- |
|
|
91
|
-
| `@makinbakin/sdk`
|
|
92
|
-
| `@makinbakin/sdk/ui`
|
|
93
|
-
| `@makinbakin/sdk/hooks`
|
|
94
|
-
| `@makinbakin/sdk/components`
|
|
95
|
-
| `@makinbakin/sdk/slots`
|
|
96
|
-
| `@makinbakin/sdk/types`
|
|
97
|
-
| `@makinbakin/sdk/utils`
|
|
97
|
+
| `@makinbakin/sdk` | Plugin registration, route helpers, top-level exports |
|
|
98
|
+
| `@makinbakin/sdk/ui` | Base UI components |
|
|
99
|
+
| `@makinbakin/sdk/hooks` | Shared React hooks |
|
|
100
|
+
| `@makinbakin/sdk/components` | Higher-level shell components |
|
|
101
|
+
| `@makinbakin/sdk/slots` | Slot runtime and provider |
|
|
102
|
+
| `@makinbakin/sdk/types` | TypeScript contract types |
|
|
103
|
+
| `@makinbakin/sdk/utils` | Shared utilities |
|
|
104
|
+
| `@makinbakin/sdk/metadata` | Docs-aware contract metadata helpers |
|
|
105
|
+
| `@makinbakin/sdk/routing` | Typed declarative route helpers |
|
|
106
|
+
|
|
107
|
+
Use `@makinbakin/sdk/*` imports for external plugin code.
|
|
98
108
|
|
|
99
109
|
## Repository
|
|
100
110
|
|
|
@@ -104,4 +114,4 @@ This package is developed alongside Bakin in the
|
|
|
104
114
|
|
|
105
115
|
## License
|
|
106
116
|
|
|
107
|
-
|
|
117
|
+
Apache-2.0
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { RuntimeChatChunk } from '@makinbakin/sdk/types';
|
|
2
|
+
import type { BrainstormMessage } from './types';
|
|
3
|
+
export interface BrainstormActivityInput {
|
|
4
|
+
kind: string;
|
|
5
|
+
content: string;
|
|
6
|
+
data?: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface BrainstormTimelineMessageInput {
|
|
9
|
+
id: string;
|
|
10
|
+
role: 'user' | 'assistant' | 'agent';
|
|
11
|
+
content: string;
|
|
12
|
+
timestamp?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface BrainstormTimelineActivityInput extends BrainstormActivityInput {
|
|
15
|
+
id: string;
|
|
16
|
+
timestamp?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function runtimeChunkToBrainstormActivity(chunk: RuntimeChatChunk): BrainstormActivityInput | null;
|
|
19
|
+
export declare function brainstormActivityMessageFromCustom(name: string, data: unknown): BrainstormMessage | null;
|
|
20
|
+
export declare function toBrainstormTimeline(agentId: string, input: {
|
|
21
|
+
messages: BrainstormTimelineMessageInput[];
|
|
22
|
+
activities?: BrainstormTimelineActivityInput[];
|
|
23
|
+
}): BrainstormMessage[];
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import type { IntegratedBrainstormProps } from './types';
|
|
2
2
|
export type { BrainstormMessage, IntegratedBrainstormProps, BrainstormOnSend, SendContext, AssistantTransformed, } from './types';
|
|
3
|
-
export
|
|
3
|
+
export { brainstormActivityMessageFromCustom, runtimeChunkToBrainstormActivity, toBrainstormTimeline, } from './activity';
|
|
4
|
+
export { brainstormThreadId, normalizeBrainstormActivityForStorage, normalizeBrainstormActivityMessageForStorage, } from './session';
|
|
5
|
+
export type { BrainstormActivityInput, BrainstormTimelineActivityInput, BrainstormTimelineMessageInput, } from './activity';
|
|
6
|
+
export type { BrainstormActivityStorageInput, BrainstormActivityStorageRecord, } from './session';
|
|
7
|
+
export { readBrainstormSseResponse } from './sse';
|
|
8
|
+
export declare function IntegratedBrainstorm({ messages, onMessagesChange, onSend, agentId, onAgentChange, label, icon, placeholder, emptyState, collapsible, defaultOpen, defaultHeight, minHeight, maxHeight, maxInputHeight, storageKey, fitParent, showHeader, readOnly, readOnlyNotice, transformAssistantMessage, }: IntegratedBrainstormProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BrainstormMessage } from './types';
|
|
2
|
+
export interface BrainstormActivityStorageInput {
|
|
3
|
+
id?: string;
|
|
4
|
+
kind?: string;
|
|
5
|
+
content?: string;
|
|
6
|
+
data?: unknown;
|
|
7
|
+
timestamp?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface BrainstormActivityStorageRecord {
|
|
10
|
+
kind: string;
|
|
11
|
+
content: string;
|
|
12
|
+
data?: unknown;
|
|
13
|
+
}
|
|
14
|
+
export declare function brainstormThreadId(scope: string, entityId: string, agentId: string): string;
|
|
15
|
+
export declare function normalizeBrainstormActivityForStorage(activity: BrainstormActivityStorageInput): BrainstormActivityStorageRecord | null;
|
|
16
|
+
export declare function normalizeBrainstormActivityMessageForStorage(activity: BrainstormActivityStorageInput): Pick<BrainstormMessage, 'role' | 'kind' | 'content' | 'data'> | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SendContext } from './types';
|
|
2
|
+
interface BrainstormSseReadOptions {
|
|
3
|
+
onCustomEvent?: (event: string, data: unknown) => boolean | void;
|
|
4
|
+
}
|
|
5
|
+
export declare function readBrainstormSseResponse(response: Response, ctx: SendContext, options?: BrainstormSseReadOptions): Promise<{
|
|
6
|
+
content: string;
|
|
7
|
+
}>;
|
|
8
|
+
export {};
|
|
@@ -2,9 +2,11 @@ import type { LucideIcon } from 'lucide-react';
|
|
|
2
2
|
import type { ReactNode } from 'react';
|
|
3
3
|
export interface BrainstormMessage {
|
|
4
4
|
id: string;
|
|
5
|
-
role: 'user' | 'assistant';
|
|
5
|
+
role: 'user' | 'assistant' | 'activity';
|
|
6
6
|
content: string;
|
|
7
7
|
agentId?: string;
|
|
8
|
+
kind?: 'runtime_status' | 'tool_call' | 'error' | string;
|
|
9
|
+
data?: unknown;
|
|
8
10
|
timestamp?: string;
|
|
9
11
|
}
|
|
10
12
|
export interface SendContext {
|
|
@@ -38,16 +40,16 @@ export interface IntegratedBrainstormProps {
|
|
|
38
40
|
position?: 'bottom';
|
|
39
41
|
collapsible?: boolean;
|
|
40
42
|
defaultOpen?: boolean;
|
|
41
|
-
|
|
43
|
+
defaultHeight?: number;
|
|
42
44
|
minHeight?: number;
|
|
43
45
|
maxHeight?: number;
|
|
44
46
|
maxInputHeight?: number;
|
|
45
47
|
storageKey?: string;
|
|
46
48
|
/**
|
|
47
49
|
* Fill parent height via flex-1/h-full instead of a fixed pixel height.
|
|
48
|
-
* Drops the drag handle
|
|
49
|
-
*
|
|
50
|
-
*
|
|
50
|
+
* Drops the drag handle because there is nothing fixed to drag against. Use
|
|
51
|
+
* when the panel IS the pane — e.g. a dedicated chat route — rather than a
|
|
52
|
+
* bottom sheet above other content.
|
|
51
53
|
*/
|
|
52
54
|
fitParent?: boolean;
|
|
53
55
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useRender } from "@base-ui/react/use-render";
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
3
|
declare const badgeVariants: (props?: ({
|
|
4
|
-
variant?: "
|
|
4
|
+
variant?: "destructive" | "link" | "default" | "outline" | "secondary" | "ghost" | null | undefined;
|
|
5
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
6
|
declare function Badge({ className, variant, render, ...props }: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
7
7
|
export { Badge, badgeVariants };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Button as ButtonPrimitive } from "@base-ui/react/button";
|
|
2
2
|
import { type VariantProps } from "class-variance-authority";
|
|
3
3
|
declare const buttonVariants: (props?: ({
|
|
4
|
-
variant?: "
|
|
4
|
+
variant?: "destructive" | "link" | "default" | "outline" | "secondary" | "ghost" | "warning" | "accent" | null | undefined;
|
|
5
5
|
size?: "default" | "sm" | "lg" | "icon" | "xs" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
7
|
declare function Button({ className, variant, size, ...props }: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -41,6 +41,10 @@ export interface WorkspaceFile {
|
|
|
41
41
|
export interface MessageArgs {
|
|
42
42
|
agentId: string;
|
|
43
43
|
content: string;
|
|
44
|
+
/**
|
|
45
|
+
* Adapter-neutral durable conversation key. Runtime adapters should map the
|
|
46
|
+
* same agentId + threadId pair to the same provider/runtime session.
|
|
47
|
+
*/
|
|
44
48
|
threadId?: string;
|
|
45
49
|
metadata?: RuntimeMetadata;
|
|
46
50
|
}
|
|
@@ -49,10 +53,22 @@ export interface MessageResult {
|
|
|
49
53
|
content?: string;
|
|
50
54
|
metadata?: RuntimeMetadata;
|
|
51
55
|
}
|
|
56
|
+
export interface RuntimeToolActivity {
|
|
57
|
+
phase: 'call' | 'result';
|
|
58
|
+
callId?: string;
|
|
59
|
+
toolName: string;
|
|
60
|
+
status?: 'running' | 'completed' | 'failed' | string;
|
|
61
|
+
summary?: string;
|
|
62
|
+
inputPreview?: string;
|
|
63
|
+
outputPreview?: string;
|
|
64
|
+
durationMs?: number;
|
|
65
|
+
exitCode?: number;
|
|
66
|
+
metadata?: RuntimeMetadata;
|
|
67
|
+
}
|
|
52
68
|
export interface ChatChunk {
|
|
53
69
|
type: 'text' | 'tool' | 'status' | 'done' | 'error';
|
|
54
70
|
content?: string;
|
|
55
|
-
data?:
|
|
71
|
+
data?: RuntimeMetadata | RuntimeToolActivity;
|
|
56
72
|
}
|
|
57
73
|
export interface ToolDefinition {
|
|
58
74
|
name: string;
|
|
@@ -2,4 +2,4 @@ export type { AdapterAuditEvent, AdapterHealthCheckDefinition, AdapterHealthChec
|
|
|
2
2
|
export type { ChannelCapability } from './capabilities';
|
|
3
3
|
export { hasChannelCapability } from './capabilities';
|
|
4
4
|
export { getRuntimeMainAgent, getRuntimeMainAgentId, getRuntimeMainAgentName, selectRuntimeMainAgent, } from './helpers';
|
|
5
|
-
export type { AgentRuntimeAdapter, ApprovalDelivery, ApprovalOption, ApprovalPatch, ApprovalRenderRef, ApprovalRenderResult, ApprovalResolveEvent, ApprovalResponse, CancelApprovalArgs, ChannelInfo, ChannelInteractionEvent, ChannelMessageArgs, ChannelMessageEvent, ChatChunk, ContentDeliveryArgs, CreateApprovalArgs, CreateCronJobInput, CreateRuntimeAgentInput, CronJob, CronRun, DeliveryResult, DurableApprovalRecord, EditApprovalArgs, ListExecutionsOpts, MessageArgs, MessageResult, NotificationArgs, ResolveApprovalArgs, RuntimeAgent, RuntimeAllowlistPatch, RuntimeAvailableModel, RuntimeConfigAccess, RuntimeMemoryEntry, RuntimeMemoryEntryStat, RuntimeMemoryPathMatch, RuntimeMemoryReadRange, RuntimeMemorySearchResult, RuntimeMemoryTier, RuntimeMetadata, RuntimePermissionPatch, RawCronSnapshot, RuntimeSession, RuntimeSkill, TaskDispatchArgs, TaskDispatchResult, TaskExecutionEvent, TaskExecutionStatus, ToolDefinition, ToolResult, UpdateCronJobInput, UpdateRuntimeAgentInput, WorkspaceFile, } from './concepts';
|
|
5
|
+
export type { AgentRuntimeAdapter, ApprovalDelivery, ApprovalOption, ApprovalPatch, ApprovalRenderRef, ApprovalRenderResult, ApprovalResolveEvent, ApprovalResponse, CancelApprovalArgs, ChannelInfo, ChannelInteractionEvent, ChannelMessageArgs, ChannelMessageEvent, ChatChunk, ContentDeliveryArgs, CreateApprovalArgs, CreateCronJobInput, CreateRuntimeAgentInput, CronJob, CronRun, DeliveryResult, DurableApprovalRecord, EditApprovalArgs, ListExecutionsOpts, MessageArgs, MessageResult, NotificationArgs, ResolveApprovalArgs, RuntimeAgent, RuntimeAllowlistPatch, RuntimeToolActivity, RuntimeAvailableModel, RuntimeConfigAccess, RuntimeMemoryEntry, RuntimeMemoryEntryStat, RuntimeMemoryPathMatch, RuntimeMemoryReadRange, RuntimeMemorySearchResult, RuntimeMemoryTier, RuntimeMetadata, RuntimePermissionPatch, RawCronSnapshot, RuntimeSession, RuntimeSkill, TaskDispatchArgs, TaskDispatchResult, TaskExecutionEvent, TaskExecutionStatus, ToolDefinition, ToolResult, UpdateCronJobInput, UpdateRuntimeAgentInput, WorkspaceFile, } from './concepts';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core branding and identity constants for Bakin.
|
|
3
|
+
*
|
|
4
|
+
* Change these values to rebrand the entire application.
|
|
5
|
+
* Every file that needs the app name, slug, or paths imports from here.
|
|
6
|
+
*/
|
|
7
|
+
export declare const APP_NAME = "Bakin";
|
|
8
|
+
export declare const APP_SLUG = "bakin";
|
|
9
|
+
export { APP_VERSION } from './generated-version';
|
|
10
|
+
export declare const APP_HOME_DEFAULT = "~/.bakin";
|
|
11
|
+
export declare const CONFIG_FILE = "bakin.config.ts";
|
|
12
|
+
export declare const PLUGIN_MANIFEST_FILE = "bakin-plugin.json";
|
|
13
|
+
export declare const MAIN_AGENT_ROLE = "orchestrator";
|
|
14
|
+
export declare const DEFAULT_PORT = 3737;
|
|
15
|
+
export declare const ENV_PREFIX = "BAKIN";
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve the content directory path.
|
|
3
|
+
*/
|
|
4
|
+
export declare function getContentDir(): string;
|
|
5
|
+
/**
|
|
6
|
+
* Whether the content dir is inside the supported Bakin home contract.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isUsingBakinHome(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Reset the resolved content dir (for testing).
|
|
11
|
+
*/
|
|
12
|
+
export declare function resetContentDir(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Well-known content paths. Agents and CLI use these instead of constructing paths.
|
|
15
|
+
*/
|
|
16
|
+
export interface BakinPaths {
|
|
17
|
+
home: string;
|
|
18
|
+
memoryLog: string;
|
|
19
|
+
audit: string;
|
|
20
|
+
assets: string;
|
|
21
|
+
'assets.store': string;
|
|
22
|
+
'assets.inbox': string;
|
|
23
|
+
'assets.trash': string;
|
|
24
|
+
agents: string;
|
|
25
|
+
personas: string;
|
|
26
|
+
team: string;
|
|
27
|
+
heartbeats: string;
|
|
28
|
+
inbox: string;
|
|
29
|
+
tasks: string;
|
|
30
|
+
workflows: string;
|
|
31
|
+
settings: string;
|
|
32
|
+
logs: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function getBakinPaths(): BakinPaths;
|
|
35
|
+
/**
|
|
36
|
+
* Initialize the ~/.bakin/ directory structure.
|
|
37
|
+
* Called by `bakin mkdir` CLI command or on first run.
|
|
38
|
+
*/
|
|
39
|
+
export declare function initBakinHome(targetDir?: string): {
|
|
40
|
+
created: string[];
|
|
41
|
+
seeded: string[];
|
|
42
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const APP_VERSION = "0.0.0-dev";
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
declare function createLogger(module: string): {
|
|
2
|
+
debug: (message: string, data?: Record<string, unknown>) => void;
|
|
3
|
+
info: (message: string, data?: Record<string, unknown>) => void;
|
|
4
|
+
warn: (message: string, errorOrData?: unknown, data?: Record<string, unknown>) => void;
|
|
5
|
+
error: (message: string, errorOrData?: unknown, data?: Record<string, unknown>) => void;
|
|
6
|
+
};
|
|
7
|
+
export type Logger = ReturnType<typeof createLogger>;
|
|
8
|
+
export { createLogger };
|
|
@@ -128,6 +128,12 @@ export interface ActivityAPI {
|
|
|
128
128
|
/** Log a structured audit event */
|
|
129
129
|
audit(event: string, agent: string, data?: Record<string, unknown>): void;
|
|
130
130
|
}
|
|
131
|
+
export interface PluginLogger {
|
|
132
|
+
debug(message: string, data?: Record<string, unknown>): void;
|
|
133
|
+
info(message: string, data?: Record<string, unknown>): void;
|
|
134
|
+
warn(message: string, errorOrData?: unknown, data?: Record<string, unknown>): void;
|
|
135
|
+
error(message: string, errorOrData?: unknown, data?: Record<string, unknown>): void;
|
|
136
|
+
}
|
|
131
137
|
export interface HookAPI {
|
|
132
138
|
/** Register a handler for a named hook. Returns unsubscribe function. */
|
|
133
139
|
register(name: string, handler: (data: any) => any, metadata?: HookRegistrationMetadata): () => void;
|
|
@@ -218,6 +224,33 @@ export interface HealthCheckResult {
|
|
|
218
224
|
message: string;
|
|
219
225
|
autoFixable: boolean;
|
|
220
226
|
}
|
|
227
|
+
export type HealthRepairSafety = 'safe' | 'manual' | 'destructive';
|
|
228
|
+
export interface HealthRepairChange {
|
|
229
|
+
kind: 'file' | 'setting' | 'service' | 'runtime' | 'task' | 'other';
|
|
230
|
+
target: string;
|
|
231
|
+
action: 'create' | 'update' | 'delete' | 'install' | 'invoke';
|
|
232
|
+
description: string;
|
|
233
|
+
}
|
|
234
|
+
export interface HealthRepairPlanItem {
|
|
235
|
+
id: string;
|
|
236
|
+
checkId: string;
|
|
237
|
+
title: string;
|
|
238
|
+
reason: string;
|
|
239
|
+
safety: HealthRepairSafety;
|
|
240
|
+
requiresConfirmation: boolean;
|
|
241
|
+
changes: HealthRepairChange[];
|
|
242
|
+
}
|
|
243
|
+
export interface HealthRepairApplyResult {
|
|
244
|
+
id: string;
|
|
245
|
+
checkId: string;
|
|
246
|
+
status: 'applied' | 'skipped' | 'failed';
|
|
247
|
+
message: string;
|
|
248
|
+
changes: HealthRepairChange[];
|
|
249
|
+
}
|
|
250
|
+
export interface HealthRepairHandler {
|
|
251
|
+
plan(rows: HealthCheckResult[]): Promise<HealthRepairPlanItem[]>;
|
|
252
|
+
apply(items: HealthRepairPlanItem[]): Promise<HealthRepairApplyResult[]>;
|
|
253
|
+
}
|
|
221
254
|
/**
|
|
222
255
|
* Input shape plugins pass to `ctx.registerHealthCheck`. The plugin id is
|
|
223
256
|
* auto-namespaced as `{pluginId}.{id}`. `run()` returns an array so one
|
|
@@ -234,12 +267,15 @@ export interface PluginHealthCheckInput {
|
|
|
234
267
|
*/
|
|
235
268
|
run: () => Promise<HealthCheckResult[]>;
|
|
236
269
|
/**
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
* invokes every registered check regardless of this value. Plugins that
|
|
240
|
-
* do internal auto-fixes gate on `getSettings().doctor.*` themselves.
|
|
270
|
+
* Legacy advisory flag for older admin surfaces. New code should derive
|
|
271
|
+
* repairability from `repair`.
|
|
241
272
|
*/
|
|
242
273
|
autoFix?: boolean;
|
|
274
|
+
/**
|
|
275
|
+
* Optional explicit repair contract. Diagnostics call only `run()`; repair
|
|
276
|
+
* flows call `plan()` first, then `apply()` after explicit confirmation.
|
|
277
|
+
*/
|
|
278
|
+
repair?: HealthRepairHandler;
|
|
243
279
|
}
|
|
244
280
|
export interface HealthCheckDef extends PluginHealthCheckInput {
|
|
245
281
|
runtime: 'plugin';
|
|
@@ -306,6 +342,8 @@ export interface PluginContext {
|
|
|
306
342
|
updateSettings(patch: Record<string, unknown>): void;
|
|
307
343
|
/** Structured activity logging */
|
|
308
344
|
activity: ActivityAPI;
|
|
345
|
+
/** Plugin-scoped server log. Prefer this over console.* for lifecycle logs. */
|
|
346
|
+
log?: PluginLogger;
|
|
309
347
|
/** Cross-plugin hook registration */
|
|
310
348
|
hooks: HookAPI;
|
|
311
349
|
/** Adapter-backed search — register content types, index, query */
|
|
@@ -328,10 +366,19 @@ export interface PluginTask {
|
|
|
328
366
|
workflowId?: string;
|
|
329
367
|
scheduleJobId?: string;
|
|
330
368
|
projectId?: string;
|
|
369
|
+
availableAt?: string;
|
|
370
|
+
dueAt?: string;
|
|
371
|
+
source?: PluginTaskSource;
|
|
331
372
|
order?: number;
|
|
332
373
|
createdAt?: string;
|
|
333
374
|
updatedAt?: string;
|
|
334
375
|
}
|
|
376
|
+
export interface PluginTaskSource {
|
|
377
|
+
pluginId?: string;
|
|
378
|
+
entityType?: string;
|
|
379
|
+
entityId?: string;
|
|
380
|
+
purpose?: string;
|
|
381
|
+
}
|
|
335
382
|
export interface TaskLogEntry {
|
|
336
383
|
timestamp: string;
|
|
337
384
|
author: string;
|
|
@@ -349,6 +396,9 @@ export interface PluginTaskCreateInput {
|
|
|
349
396
|
workflowId?: string;
|
|
350
397
|
projectId?: string;
|
|
351
398
|
parentId?: string | null;
|
|
399
|
+
availableAt?: string;
|
|
400
|
+
dueAt?: string;
|
|
401
|
+
source?: PluginTaskSource;
|
|
352
402
|
skipWorkflowReason?: string;
|
|
353
403
|
}
|
|
354
404
|
export interface PluginTaskUpdateInput {
|
|
@@ -364,6 +414,9 @@ export interface PluginTaskUpdateInput {
|
|
|
364
414
|
scheduleJobId?: string;
|
|
365
415
|
projectId?: string;
|
|
366
416
|
parentId?: string | null;
|
|
417
|
+
availableAt?: string | null;
|
|
418
|
+
dueAt?: string | null;
|
|
419
|
+
source?: PluginTaskSource | null;
|
|
367
420
|
}
|
|
368
421
|
export interface PluginTaskService {
|
|
369
422
|
create(input: PluginTaskCreateInput): Promise<PluginTask>;
|
|
@@ -818,6 +871,14 @@ export interface PluginManifestSignature {
|
|
|
818
871
|
publicKey: string;
|
|
819
872
|
signature: string;
|
|
820
873
|
}
|
|
874
|
+
export interface SecretDeclaration {
|
|
875
|
+
/** Canonical environment variable name, for example `ANTHROPIC_API_KEY`. */
|
|
876
|
+
name: string;
|
|
877
|
+
/** Human-readable setup note. Never include a secret value here. */
|
|
878
|
+
description: string;
|
|
879
|
+
/** Missing required secrets should be reported by setup/health checks. Defaults to true. */
|
|
880
|
+
required: boolean;
|
|
881
|
+
}
|
|
821
882
|
export interface PluginManifest {
|
|
822
883
|
id: string;
|
|
823
884
|
name: string;
|
|
@@ -829,7 +890,7 @@ export interface PluginManifest {
|
|
|
829
890
|
client?: string;
|
|
830
891
|
};
|
|
831
892
|
contentFiles?: string[];
|
|
832
|
-
secrets?:
|
|
893
|
+
secrets?: SecretDeclaration[];
|
|
833
894
|
tests?: string;
|
|
834
895
|
dependencies?: string[];
|
|
835
896
|
permissions?: string[];
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* `@bakin/core/routing` — typed route contracts.
|
|
3
3
|
*
|
|
4
4
|
* Re-exports the route types and authoring helpers used by both the host and
|
|
5
|
-
* plugin authors (via `@
|
|
5
|
+
* plugin authors (via `@makinbakin/sdk/routing`).
|
|
6
6
|
*/
|
|
7
7
|
export type { HttpMethod, HttpStatus, RouteContext, PluginContextLite, CoreContext, JsonBodySpec, MultipartBodySpec, RawBodySpec, NoBodySpec, BodySpec, JsonResponseSpec, NoContentResponseSpec, NonJsonResponseSpec, ResponseSpec, ParsedInput, APIRoute, PluginWithRoutes, } from './types';
|
|
8
8
|
export { defineRoute, defineCoreRoute, definePlugin } from './define';
|
package/components/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `@
|
|
2
|
+
* `@makinbakin/sdk/components` — shared layout + compound components.
|
|
3
3
|
*
|
|
4
4
|
* Plugin-author-visible components that wrap shadcn primitives with Bakin-
|
|
5
5
|
* specific behavior (headers, filters, markdown, agent displays, etc.). Does
|
|
@@ -18,7 +18,8 @@ export { ErrorState } from '../_internal/app/components/error-state';
|
|
|
18
18
|
export { FacetFilter } from '../_internal/app/components/facet-filter';
|
|
19
19
|
export type { FacetOption } from '../_internal/app/components/facet-filter';
|
|
20
20
|
export { IntegratedBrainstorm } from '../_internal/app/components/integrated-brainstorm';
|
|
21
|
-
export type { BrainstormMessage, IntegratedBrainstormProps, BrainstormOnSend, SendContext, AssistantTransformed, } from '../_internal/app/components/integrated-brainstorm';
|
|
21
|
+
export type { BrainstormMessage, IntegratedBrainstormProps, BrainstormOnSend, SendContext, AssistantTransformed, BrainstormActivityInput, BrainstormActivityStorageInput, BrainstormActivityStorageRecord, BrainstormTimelineActivityInput, BrainstormTimelineMessageInput, } from '../_internal/app/components/integrated-brainstorm';
|
|
22
|
+
export { brainstormActivityMessageFromCustom, brainstormThreadId, normalizeBrainstormActivityForStorage, normalizeBrainstormActivityMessageForStorage, readBrainstormSseResponse, runtimeChunkToBrainstormActivity, toBrainstormTimeline, } from '../_internal/app/components/integrated-brainstorm';
|
|
22
23
|
export { MarkdownContent } from '../_internal/app/components/markdown-content';
|
|
23
24
|
export { MarkdownEditor } from '../_internal/app/components/markdown-editor';
|
|
24
25
|
export { ModelSelect } from '../_internal/app/components/model-select';
|