@4djs/assistant 0.1.1 → 0.1.2

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 (45) hide show
  1. package/README.md +34 -1
  2. package/dist/core/create-assistant-store.d.ts +1 -0
  3. package/dist/core/create-assistant-store.d.ts.map +1 -1
  4. package/dist/core/index.d.ts +8 -2
  5. package/dist/core/index.d.ts.map +1 -1
  6. package/dist/core/index.js +1968 -807
  7. package/dist/core/interactive-tools/gate.d.ts +14 -0
  8. package/dist/core/interactive-tools/gate.d.ts.map +1 -0
  9. package/dist/core/interactive-tools/index.d.ts +1 -0
  10. package/dist/core/interactive-tools/index.d.ts.map +1 -1
  11. package/dist/core/llm-chat.d.ts.map +1 -1
  12. package/dist/core/llm-provider.d.ts.map +1 -1
  13. package/dist/core/markdown-utils.d.ts +1 -2
  14. package/dist/core/markdown-utils.d.ts.map +1 -1
  15. package/dist/core/system-prompt.d.ts +3 -0
  16. package/dist/core/system-prompt.d.ts.map +1 -0
  17. package/dist/core/tool-names.d.ts +5 -0
  18. package/dist/core/tool-names.d.ts.map +1 -0
  19. package/dist/core/tool-registry.d.ts +28 -0
  20. package/dist/core/tool-registry.d.ts.map +1 -0
  21. package/dist/core/types.d.ts +5 -2
  22. package/dist/core/types.d.ts.map +1 -1
  23. package/dist/index.js +521 -4007
  24. package/dist/react/Assistant.d.ts.map +1 -1
  25. package/dist/react/components/HighlightedJsonCode.d.ts.map +1 -1
  26. package/dist/react/components/MarkdownContent.d.ts.map +1 -1
  27. package/dist/react/components/chat/ChatActivity.d.ts.map +1 -1
  28. package/dist/react/components/highlighted-code.d.ts.map +1 -1
  29. package/dist/react/context.d.ts +2 -2
  30. package/dist/react/context.d.ts.map +1 -1
  31. package/dist/react/hooks/use-composer-commands.d.ts +1 -1
  32. package/dist/react/hooks/use-composer-commands.d.ts.map +1 -1
  33. package/dist/react/hooks/use-suggested-prompts.d.ts +1 -1
  34. package/dist/react/hooks/use-suggested-prompts.d.ts.map +1 -1
  35. package/dist/react/index.d.ts +1 -1
  36. package/dist/react/index.d.ts.map +1 -1
  37. package/dist/react/types.d.ts +3 -2
  38. package/dist/react/types.d.ts.map +1 -1
  39. package/dist/styles.css +80 -0
  40. package/dist/tools/datastore.d.ts +28 -0
  41. package/dist/tools/datastore.d.ts.map +1 -0
  42. package/dist/tools/index.d.ts +4 -0
  43. package/dist/tools/index.d.ts.map +1 -0
  44. package/dist/tools/index.js +249 -0
  45. package/package.json +11 -6
package/README.md CHANGED
@@ -10,7 +10,7 @@ npm install @4djs/assistant
10
10
  bun add @4djs/assistant
11
11
  ```
12
12
 
13
- Peer dependencies: `react` and `react-dom` (^19).
13
+ Peer dependencies: `react` and `react-dom` (^18 or ^19). React is not bundled — your app supplies it.
14
14
 
15
15
  Import styles once in your app entry (required for the UI):
16
16
 
@@ -64,12 +64,45 @@ When no LLM is configured, chat input is disabled and the UI prompts users to op
64
64
 
65
65
  ### Required store hooks
66
66
 
67
+ Provide **`toolRegistry`** (recommended) or both **`listTools`** and **`invokeTool`**:
68
+
67
69
  | Option | Description |
68
70
  | --- | --- |
69
71
  | `welcomeMessage(ctx)` | Returns the initial assistant message. Called again when LLM status or model changes. |
72
+ | `toolRegistry` | `AssistantToolRegistry` from `createAssistantToolRegistry()` — register, deactivate, and invoke tools in one place. |
70
73
  | `listTools()` | Returns OpenAI-style tool definitions (`name`, `description`, `inputSchema`). |
71
74
  | `invokeTool(name, args)` | Executes a tool and returns `{ content, isError?, structuredContent? }`. |
72
75
 
76
+ ### Tool registry (`@4djs/assistant/core` and `@4djs/assistant/tools`)
77
+
78
+ ```ts
79
+ import {
80
+ connectExternalTools,
81
+ createAssistantToolRegistry,
82
+ } from "@4djs/assistant/tools";
83
+ import { registerDatastoreTools } from "@4djs/assistant/tools";
84
+
85
+ const registry = createAssistantToolRegistry();
86
+ registerDatastoreTools(registry, myDatastoreAdapter);
87
+
88
+ // Extend at runtime
89
+ registry.register({
90
+ definition: { name: "my_tool", description: "…", inputSchema: { type: "object", properties: {} } },
91
+ invoke: async (args) => ({ content: [{ type: "text", text: "ok" }] }),
92
+ });
93
+
94
+ registry.deactivate("my_tool"); // hide from LLM without unregistering
95
+ registry.activate("my_tool");
96
+
97
+ // Bridge @4d/tools or any external registry
98
+ connectExternalTools(registry, externalRegistry);
99
+
100
+ const config: AssistantConfig = {
101
+ toolRegistry: registry,
102
+ // …
103
+ };
104
+ ```
105
+
73
106
  ### Optional store hooks
74
107
 
75
108
  | Option | Description |
@@ -28,6 +28,7 @@ export interface AssistantState {
28
28
  submitInteractiveToolResult: (callId: string, result: unknown) => void;
29
29
  cancelInteractiveToolResult: (callId: string) => void;
30
30
  }
31
+ export declare function resolveAssistantStoreDependencies(deps: AssistantStoreDependencies): Required<Pick<AssistantStoreDependencies, "listTools" | "invokeTool">> & AssistantStoreDependencies;
31
32
  export declare function createAssistantStore(deps: AssistantStoreDependencies): import("zustand").UseBoundStore<import("zustand").StoreApi<AssistantState>>;
32
33
  export type AssistantStore = ReturnType<typeof createAssistantStore>;
33
34
  //# sourceMappingURL=create-assistant-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-assistant-store.d.ts","sourceRoot":"","sources":["../../src/core/create-assistant-store.ts"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAS3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAEV,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,kBAAkB,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxD,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,CACf,MAAM,EAAE,qBAAqB,KAC1B,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,uBAAuB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,2BAA2B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,2BAA2B,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AA8HD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,0BAA0B,+EAsbpE;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"create-assistant-store.d.ts","sourceRoot":"","sources":["../../src/core/create-assistant-store.ts"],"names":[],"mappings":"AAyBA,OAAO,EAML,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAS3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAEV,gBAAgB,EAChB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,kBAAkB,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxD,eAAe,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,eAAe,EAAE,CACf,MAAM,EAAE,qBAAqB,KAC1B,OAAO,CAAC;QAAE,EAAE,EAAE,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,uBAAuB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,2BAA2B,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACvE,2BAA2B,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AA8HD,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,0BAA0B,GAC/B,QAAQ,CACT,IAAI,CAAC,0BAA0B,EAAE,WAAW,GAAG,YAAY,CAAC,CAC7D,GACC,0BAA0B,CAiB3B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,0BAA0B,+EAubpE;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -3,12 +3,14 @@ export { ASSISTANT_LABEL_KEYS, DEFAULT_ASSISTANT_LABELS, formatLabel, resolveAss
3
3
  export type { ChatActivityStep } from "./chat-activity.js";
4
4
  export { chatActivityStepLabel, formatJsonIfLarge, summarizeActivityResult, } from "./chat-activity.js";
5
5
  export type { AssistantCommandDeps, ChatCommandRunResult, ChatCommandSuggestion, ChatCommandSurface, } from "./chat-commands.js";
6
- export { filterChatCommands, getChatCommandSuggestions, isChatCommandInput, listChatCommands, parseChatCommand, runAssistantChatCommand, shouldShowChatCommandMenu, } from "./chat-commands.js";
6
+ export { completionForChatCommand, filterChatCommands, getChatCommandSuggestions, isChatCommandInput, listChatCommands, parseChatCommand, runAssistantChatCommand, shouldShowChatCommandMenu, } from "./chat-commands.js";
7
7
  export { createChatHistoryHelpers } from "./chat-history.js";
8
- export { type AssistantState, createAssistantStore, } from "./create-assistant-store.js";
8
+ export { highlightCode, normalizeCodeLineEndings } from "./code-highlight.js";
9
+ export { type AssistantState, type AssistantStore, createAssistantStore, resolveAssistantStoreDependencies, } from "./create-assistant-store.js";
9
10
  export { parseSuggestedPromptsResponse, type SuggestedPromptsResponse, } from "./fetch-suggested-prompts.js";
10
11
  export { CHOICES_TOOL, type ChoiceOption, type ChoicesToolArgs, CONFIRMATION_TOOL, type ConfirmationToolArgs, type ReplySuggestions, rejectAllInteractiveToolWaiters, resolveInteractiveToolResult, SUGGEST_REPLIES_TOOL, } from "./interactive-tools/index.js";
11
12
  export type { AgentStepResult, LlmChatStatus, StreamHandlers, ToolHandlers, } from "./llm-chat.js";
13
+ export { buildSystemPromptWithTools } from "./system-prompt.js";
12
14
  export { buildLlmHistory, ChatAbortedError, fetchLlmStatus, LlmNotConfiguredError, LlmUpstreamError, requestLlmCompletion, runLlmAgent, sanitizeLlmMessages, } from "./llm-chat.js";
13
15
  export { buildCompletionsUrl, buildLlmRequestHeaders, buildModelsUrl, DEFAULT_LLM_BASE_URL, DEFAULT_LLM_MODEL, getFallbackModels, isLlmConfigured, isLlmUnavailableMessage, isLocalLlmBaseUrl, LLM_UNAVAILABLE_MESSAGE, } from "./llm-config.js";
14
16
  export { clearProviderModelCache, fetchProviderModels, } from "./llm-models.js";
@@ -17,5 +19,9 @@ export type { LlmSettingsFormState, LlmSettingsFormValues, StoredLlmUserSettings
17
19
  export { assistantToStored, buildDefaultLlmSettings, createDefaultStoredSettings, createLlmSettingsFormState, createLlmSettingsFormStateFromStored, createLlmSettingsStorage, DEFAULT_LLM_SETTINGS_STORAGE_KEY, formatModelsText, isLlmSettingsFormDirty, mergeLlmSettings, migrateLegacyModelStorage, normalizeStoredSettings, normalizeStoredSystemPrompt, parseModelsText, peekStoredModel, persistStoredModelSelection, resolveSelectedModel, storedSettingsHaveOverrides, storedToAssistant, toStoredSettings, } from "./llm-settings-storage.js";
18
20
  export type { ClientToolDefinition, LlmChatMessage, OpenAiToolCall, } from "./llm-types.js";
19
21
  export { childrenToText } from "./markdown-utils.js";
22
+ export { prepareMarkdown } from "./prepare-markdown.js";
23
+ export { fromLlmToolName, toLlmToolName } from "./tool-names.js";
24
+ export type { AssistantToolHandler, AssistantToolRegistry, ExternalToolSource, } from "./tool-registry.js";
25
+ export { connectExternalTools, createAssistantToolRegistry, resolveAssistantToolHooks, toolResultErr, toolResultOk, } from "./tool-registry.js";
20
26
  export type { AssistantLlmConfig, AssistantLlmSettings, AssistantMessage, AssistantStorageKeys, AssistantStoreDependencies, AssistantSuggestedPrompt, AssistantToolContent, AssistantToolDefinition, AssistantToolResult, AssistantWelcomeContext, JsonSchema, } from "./types.js";
21
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,WAAW,EACX,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACL,KAAK,cAAc,EACnB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,6BAA6B,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,+BAA+B,EAC/B,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,2BAA2B,EAC3B,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,oCAAoC,EACpC,wBAAwB,EACxB,gCAAgC,EAChC,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,oBAAoB,EACpB,cAAc,EACd,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,uBAAuB,EACvB,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"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"}