glirastes 0.4.0 → 0.5.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/CHANGELOG.md +377 -1
- package/README.md +283 -847
- package/adapter/nextjs/package.json +5 -0
- package/ai-sdk/package.json +5 -0
- package/browser/package.json +5 -0
- package/contracts/package.json +5 -0
- package/dist/agent/git.d.ts +65 -0
- package/dist/agent/git.js +122 -0
- package/dist/agent/git.js.map +1 -0
- package/dist/agent/openrouter.d.ts +56 -0
- package/dist/agent/openrouter.js +74 -0
- package/dist/agent/openrouter.js.map +1 -0
- package/dist/agent/platform-jobs.d.ts +102 -0
- package/dist/agent/platform-jobs.js +122 -0
- package/dist/agent/platform-jobs.js.map +1 -0
- package/dist/agent/runner.d.ts +150 -0
- package/dist/agent/runner.js +250 -0
- package/dist/agent/runner.js.map +1 -0
- package/dist/agent/workspace.d.ts +65 -0
- package/dist/agent/workspace.js +264 -0
- package/dist/agent/workspace.js.map +1 -0
- package/dist/browser/client-actions.d.ts +26 -0
- package/dist/browser/client-actions.js +42 -0
- package/dist/browser/client-actions.js.map +1 -0
- package/dist/browser/index.d.ts +4 -0
- package/dist/browser/index.js +5 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/navigation.d.ts +32 -0
- package/dist/browser/navigation.js +79 -0
- package/dist/browser/navigation.js.map +1 -0
- package/dist/browser/query-filters.d.ts +30 -0
- package/dist/browser/query-filters.js +85 -0
- package/dist/browser/query-filters.js.map +1 -0
- package/dist/browser/ui-action-bus.d.ts +26 -0
- package/dist/browser/ui-action-bus.js +66 -0
- package/dist/browser/ui-action-bus.js.map +1 -0
- package/dist/cjs/browser/client-actions.d.ts +26 -0
- package/dist/cjs/browser/client-actions.js +45 -0
- package/dist/cjs/browser/index.d.ts +4 -0
- package/dist/cjs/browser/index.js +16 -0
- package/dist/cjs/browser/navigation.d.ts +32 -0
- package/dist/cjs/browser/navigation.js +84 -0
- package/dist/cjs/browser/query-filters.d.ts +30 -0
- package/dist/cjs/browser/query-filters.js +87 -0
- package/dist/cjs/browser/ui-action-bus.d.ts +26 -0
- package/dist/cjs/browser/ui-action-bus.js +70 -0
- package/dist/cjs/codegen/execution-inventory.d.ts +63 -0
- package/dist/cjs/codegen/execution-inventory.js +312 -0
- package/dist/cjs/codegen/index.d.ts +4 -13
- package/dist/cjs/codegen/index.js +13 -31
- package/dist/cjs/codegen/inventory-generation.d.ts +104 -0
- package/dist/cjs/codegen/inventory-generation.js +122 -0
- package/dist/cjs/codegen/next-source-generation.d.ts +17 -0
- package/dist/cjs/codegen/next-source-generation.js +51 -0
- package/dist/cjs/codegen/openapi-document.d.ts +53 -0
- package/dist/cjs/codegen/openapi-document.js +127 -0
- package/dist/cjs/codegen/route-exports.d.ts +13 -0
- package/dist/cjs/codegen/route-exports.js +122 -0
- package/dist/cjs/codegen/route-fingerprint.d.ts +2 -0
- package/dist/cjs/codegen/route-fingerprint.js +11 -0
- package/dist/cjs/codegen/route-scanner.d.ts +57 -0
- package/dist/cjs/codegen/route-scanner.js +239 -0
- package/dist/cjs/codegen/tools/canonical.d.ts +12 -0
- package/dist/cjs/codegen/tools/canonical.js +49 -0
- package/dist/cjs/codegen/tools/sources/nest-decorators.d.ts +27 -0
- package/dist/cjs/codegen/tools/sources/nest-decorators.js +73 -0
- package/dist/cjs/contracts/app-setup.d.ts +346 -0
- package/dist/cjs/contracts/app-setup.js +208 -0
- package/dist/cjs/contracts/chat-command.d.ts +65 -0
- package/dist/cjs/contracts/chat-command.js +128 -0
- package/dist/cjs/contracts/chat-interactions.d.ts +126 -0
- package/dist/cjs/contracts/chat-interactions.js +439 -0
- package/dist/cjs/contracts/clarification.d.ts +53 -0
- package/dist/cjs/contracts/clarification.js +91 -0
- package/dist/cjs/contracts/content-boundary.d.ts +3 -0
- package/dist/cjs/contracts/content-boundary.js +95 -0
- package/dist/cjs/contracts/events.d.ts +273 -0
- package/dist/cjs/contracts/events.js +229 -0
- package/dist/cjs/contracts/index.d.ts +18 -0
- package/dist/cjs/contracts/index.js +83 -0
- package/dist/cjs/contracts/plan.d.ts +20 -0
- package/dist/cjs/contracts/plan.js +38 -0
- package/dist/cjs/contracts/platform-connection.d.ts +44 -0
- package/dist/cjs/contracts/platform-connection.js +66 -0
- package/dist/cjs/contracts/platform-prompt-revision.d.ts +27 -0
- package/dist/cjs/contracts/platform-prompt-revision.js +46 -0
- package/dist/cjs/contracts/prompt-bundle.d.ts +46 -0
- package/dist/cjs/contracts/prompt-bundle.js +74 -0
- package/dist/cjs/contracts/revisions.d.ts +716 -0
- package/dist/cjs/contracts/revisions.js +301 -0
- package/dist/cjs/contracts/runtime.d.ts +55 -0
- package/dist/cjs/contracts/runtime.js +67 -0
- package/dist/cjs/contracts/semantic-change.d.ts +27 -0
- package/dist/cjs/contracts/semantic-change.js +103 -0
- package/dist/cjs/contracts/tool-exclude-pattern.d.ts +12 -0
- package/dist/cjs/contracts/tool-exclude-pattern.js +29 -0
- package/dist/cjs/contracts/tool-policy-entry.d.ts +107 -0
- package/dist/cjs/contracts/tool-policy-entry.js +42 -0
- package/dist/cjs/contracts/tool-policy.d.ts +198 -0
- package/dist/cjs/contracts/tool-policy.js +500 -0
- package/dist/cjs/contracts/url.d.ts +2 -0
- package/dist/cjs/contracts/url.js +10 -0
- package/dist/cjs/diagnostics/foundation-diagnostic.d.ts +34 -0
- package/dist/cjs/diagnostics/foundation-diagnostic.js +52 -0
- package/dist/cjs/diagnostics/index.d.ts +2 -0
- package/dist/cjs/diagnostics/index.js +7 -0
- package/dist/cjs/embed/chat-styles.generated.d.ts +1 -0
- package/dist/cjs/embed/chat-styles.generated.js +6 -0
- package/dist/cjs/embed/glirastes-chat-element.d.ts +67 -0
- package/dist/cjs/embed/glirastes-chat-element.js +282 -0
- package/dist/cjs/embed/index.d.ts +4 -0
- package/dist/cjs/embed/index.js +20 -0
- package/dist/cjs/embed/theme.d.ts +10 -0
- package/dist/cjs/embed/theme.js +45 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/react/assistant/assistant-layout.d.ts +55 -0
- package/dist/cjs/react/assistant/assistant-layout.js +107 -0
- package/dist/cjs/react/assistant/assistant-shell.d.ts +132 -0
- package/dist/cjs/react/assistant/assistant-shell.js +267 -0
- package/dist/cjs/react/assistant/assistant-shortcut-list.d.ts +24 -0
- package/dist/cjs/react/assistant/assistant-shortcut-list.js +35 -0
- package/dist/cjs/react/assistant/assistant-workspace.d.ts +31 -0
- package/dist/cjs/react/assistant/assistant-workspace.js +33 -0
- package/dist/cjs/react/completions/completion-search.d.ts +21 -0
- package/dist/cjs/react/completions/completion-search.js +111 -0
- package/dist/cjs/react/completions/ui-tool-command-provider.d.ts +15 -0
- package/dist/cjs/react/completions/ui-tool-command-provider.js +84 -0
- package/dist/cjs/react/components/activity-log.d.ts +17 -0
- package/dist/cjs/react/components/activity-log.js +70 -0
- package/dist/cjs/react/components/ai-chat-panel.js +13 -6
- package/dist/cjs/react/components/ai-trigger-button.d.ts +1 -1
- package/dist/cjs/react/components/ai-trigger-button.js +11 -66
- package/dist/cjs/react/components/approval-card.js +20 -1
- package/dist/cjs/react/components/chat-input.js +6 -4
- package/dist/cjs/react/components/chat-window-visibility.d.ts +3 -0
- package/dist/cjs/react/components/chat-window-visibility.js +7 -0
- package/dist/cjs/react/components/chat-window.d.ts +1 -1
- package/dist/cjs/react/components/chat-window.js +124 -57
- package/dist/cjs/react/components/clarification-card.d.ts +10 -0
- package/dist/cjs/react/components/clarification-card.js +35 -0
- package/dist/cjs/react/components/command-arguments-form.d.ts +10 -0
- package/dist/cjs/react/components/command-arguments-form.js +153 -0
- package/dist/cjs/react/components/confirm-dialog.js +1 -1
- package/dist/cjs/react/components/floating-chat-ui.d.ts +3 -3
- package/dist/cjs/react/components/floating-chat-ui.js +30 -4
- package/dist/cjs/react/components/mention-input.d.ts +5 -4
- package/dist/cjs/react/components/mention-input.js +64 -7
- package/dist/cjs/react/components/message-bubble.js +90 -14
- package/dist/cjs/react/components/plan-checklist.d.ts +14 -0
- package/dist/cjs/react/components/plan-checklist.js +20 -0
- package/dist/cjs/react/components/recording-bar.js +44 -58
- package/dist/cjs/react/components/rich-mention-input.js +197 -45
- package/dist/cjs/react/components/session-switcher.d.ts +3 -1
- package/dist/cjs/react/components/session-switcher.js +26 -11
- package/dist/cjs/react/components/status-icon.d.ts +8 -0
- package/dist/cjs/react/components/status-icon.js +11 -0
- package/dist/cjs/react/components/stream-waveform.d.ts +4 -0
- package/dist/cjs/react/components/stream-waveform.js +49 -0
- package/dist/cjs/react/components/voice-input-addon.d.ts +16 -1
- package/dist/cjs/react/components/voice-input-addon.js +255 -18
- package/dist/cjs/react/components/voice-input-button.js +1 -1
- package/dist/cjs/react/hooks/use-chat-shortcuts.d.ts +33 -0
- package/dist/cjs/react/hooks/use-chat-shortcuts.js +139 -0
- package/dist/cjs/react/hooks/use-deepgram-transcription.d.ts +4 -0
- package/dist/cjs/react/hooks/use-deepgram-transcription.js +31 -321
- package/dist/cjs/react/hooks/use-drag-resize-panel.d.ts +1 -0
- package/dist/cjs/react/hooks/use-drag-resize-panel.js +246 -121
- package/dist/cjs/react/hooks/use-floating-panel.d.ts +57 -0
- package/dist/cjs/react/hooks/use-floating-panel.js +217 -0
- package/dist/cjs/react/hooks/use-keyboard-shortcut.js +2 -1
- package/dist/cjs/react/hooks/use-push-to-talk-hotkey.d.ts +24 -0
- package/dist/cjs/react/hooks/use-push-to-talk-hotkey.js +116 -0
- package/dist/cjs/react/hooks/use-sidebar-resize.d.ts +19 -0
- package/dist/cjs/react/hooks/use-sidebar-resize.js +109 -0
- package/dist/cjs/react/index.d.ts +30 -1
- package/dist/cjs/react/index.js +91 -1
- package/dist/cjs/react/interactions/definitions.d.ts +67 -0
- package/dist/cjs/react/interactions/definitions.js +83 -0
- package/dist/cjs/react/interactions/registry.d.ts +74 -0
- package/dist/cjs/react/interactions/registry.js +250 -0
- package/dist/cjs/react/interactions/use-chat-interactions-data.d.ts +15 -0
- package/dist/cjs/react/interactions/use-chat-interactions-data.js +43 -0
- package/dist/cjs/react/locale-de.d.ts +3 -0
- package/dist/cjs/react/locale-de.js +69 -0
- package/dist/cjs/react/provider/ai-chat-provider.d.ts +1 -1
- package/dist/cjs/react/provider/ai-chat-provider.js +410 -106
- package/dist/cjs/react/provider/chat-context.d.ts +52 -1
- package/dist/cjs/react/stt/controller.d.ts +60 -0
- package/dist/cjs/react/stt/controller.js +268 -0
- package/dist/cjs/react/stt/deepgram.d.ts +30 -0
- package/dist/cjs/react/stt/deepgram.js +204 -0
- package/dist/cjs/react/stt/recorded.d.ts +29 -0
- package/dist/cjs/react/stt/recorded.js +115 -0
- package/dist/cjs/react/stt/segments.d.ts +18 -0
- package/dist/cjs/react/stt/segments.js +32 -0
- package/dist/cjs/react/stt/use-stt.d.ts +17 -0
- package/dist/cjs/react/stt/use-stt.js +41 -0
- package/dist/cjs/react/stt/waveform.d.ts +5 -0
- package/dist/cjs/react/stt/waveform.js +31 -0
- package/dist/cjs/react/styles.css +1555 -0
- package/dist/cjs/react/tool-renderers/registry.d.ts +31 -0
- package/dist/cjs/react/tool-renderers/registry.js +50 -0
- package/dist/cjs/react/tool-renderers/renderer-boundary.d.ts +18 -0
- package/dist/cjs/react/tool-renderers/renderer-boundary.js +15 -0
- package/dist/cjs/react/transports/vercel/vercel-ai-chat.d.ts +1 -1
- package/dist/cjs/react/transports/vercel/vercel-ai-chat.js +2 -2
- package/dist/cjs/react/transports/vercel.d.ts +6 -0
- package/dist/cjs/react/transports/vercel.js +12 -6
- package/dist/cjs/react/types.d.ts +269 -6
- package/dist/cjs/react/ui.d.ts +18 -17
- package/dist/cjs/react/ui.js +50 -45
- package/dist/cjs/react/unstyled.d.ts +7 -0
- package/dist/cjs/react/unstyled.js +10 -0
- package/dist/cjs/react/utils/activity.d.ts +16 -0
- package/dist/cjs/react/utils/activity.js +80 -0
- package/dist/cjs/react/utils/clarification.d.ts +31 -0
- package/dist/cjs/react/utils/clarification.js +104 -0
- package/dist/cjs/react/utils/create-approval-description.d.ts +6 -0
- package/dist/cjs/react/utils/create-approval-description.js +42 -7
- package/dist/cjs/react/utils/create-tool-result-handler.d.ts +1 -1
- package/dist/cjs/react/utils/create-tool-result-handler.js +1 -1
- package/dist/cjs/react/utils/entity-names.d.ts +6 -0
- package/dist/cjs/react/utils/entity-names.js +57 -0
- package/dist/cjs/react/utils/followup-suggestions.d.ts +11 -0
- package/dist/cjs/react/utils/followup-suggestions.js +39 -0
- package/dist/cjs/react/utils/local-session-store.d.ts +30 -0
- package/dist/cjs/react/utils/local-session-store.js +165 -0
- package/dist/cjs/react/utils/mention-markup.d.ts +44 -1
- package/dist/cjs/react/utils/mention-markup.js +144 -10
- package/dist/cjs/react/utils/tool-presentation.d.ts +23 -0
- package/dist/cjs/react/utils/tool-presentation.js +46 -0
- package/dist/cjs/react/utils/tool-result-config.d.ts +10 -0
- package/dist/cjs/react/utils/tool-result-config.js +14 -0
- package/dist/cjs/runtime/ai-sdk/engine.d.ts +66 -0
- package/dist/cjs/runtime/ai-sdk/engine.js +192 -0
- package/dist/cjs/runtime/ai-sdk/index.d.ts +1 -0
- package/dist/cjs/runtime/ai-sdk/index.js +5 -0
- package/dist/cjs/runtime/authorization.d.ts +16 -0
- package/dist/cjs/runtime/authorization.js +35 -0
- package/dist/cjs/runtime/budget.d.ts +39 -0
- package/dist/cjs/runtime/budget.js +100 -0
- package/dist/cjs/runtime/contract-bindings.d.ts +52 -0
- package/dist/cjs/runtime/contract-bindings.js +95 -0
- package/dist/cjs/runtime/engine.d.ts +52 -0
- package/dist/cjs/runtime/engine.js +2 -0
- package/dist/cjs/runtime/fingerprint.d.ts +6 -0
- package/dist/cjs/runtime/fingerprint.js +31 -0
- package/dist/cjs/runtime/glirastes.d.ts +113 -0
- package/dist/cjs/runtime/glirastes.js +289 -0
- package/dist/cjs/runtime/index.d.ts +24 -0
- package/dist/cjs/runtime/index.js +74 -0
- package/dist/cjs/runtime/json-schema.d.ts +13 -0
- package/dist/cjs/runtime/json-schema.js +46 -0
- package/dist/cjs/runtime/local-limits.d.ts +6 -0
- package/dist/cjs/runtime/local-limits.js +26 -0
- package/dist/cjs/runtime/local-runtime-source.d.ts +76 -0
- package/dist/cjs/runtime/local-runtime-source.js +0 -0
- package/dist/cjs/runtime/local-signer.d.ts +17 -0
- package/dist/cjs/runtime/local-signer.js +34 -0
- package/dist/cjs/runtime/local-tool-bindings.d.ts +57 -0
- package/dist/cjs/runtime/local-tool-bindings.js +197 -0
- package/dist/cjs/runtime/managed-turn.d.ts +29 -0
- package/dist/cjs/runtime/managed-turn.js +99 -0
- package/dist/cjs/runtime/metrics/cost.d.ts +64 -0
- package/dist/cjs/runtime/metrics/cost.js +98 -0
- package/dist/cjs/runtime/metrics/sink.d.ts +56 -0
- package/dist/cjs/runtime/metrics/sink.js +217 -0
- package/dist/cjs/runtime/metrics/turn-recorder.d.ts +62 -0
- package/dist/cjs/runtime/metrics/turn-recorder.js +172 -0
- package/dist/cjs/runtime/offline-execution-lease.d.ts +27 -0
- package/dist/cjs/runtime/offline-execution-lease.js +49 -0
- package/dist/cjs/runtime/policy-overlay.d.ts +86 -0
- package/dist/cjs/runtime/policy-overlay.js +122 -0
- package/dist/cjs/runtime/postgres-store.d.ts +111 -0
- package/dist/cjs/runtime/postgres-store.js +368 -0
- package/dist/cjs/runtime/prompt-bundle-store.d.ts +58 -0
- package/dist/cjs/runtime/prompt-bundle-store.js +123 -0
- package/dist/cjs/runtime/runtime-mode.d.ts +23 -0
- package/dist/cjs/runtime/runtime-mode.js +46 -0
- package/dist/cjs/runtime/sdk-version.d.ts +2 -0
- package/dist/cjs/runtime/sdk-version.js +5 -0
- package/dist/cjs/runtime/tool-discovery.d.ts +51 -0
- package/dist/cjs/runtime/tool-discovery.js +141 -0
- package/dist/cjs/runtime/tool-search.d.ts +31 -0
- package/dist/cjs/runtime/tool-search.js +149 -0
- package/dist/cjs/runtime/turn-snapshot.d.ts +44 -0
- package/dist/cjs/runtime/turn-snapshot.js +112 -0
- package/dist/cjs/server/adapters/nextjs/approval-binding.d.ts +334 -0
- package/dist/cjs/server/adapters/nextjs/approval-binding.js +724 -0
- package/dist/cjs/server/adapters/nextjs/chat-interactions-handler.d.ts +26 -0
- package/dist/cjs/server/adapters/nextjs/chat-interactions-handler.js +67 -0
- package/dist/cjs/server/adapters/nextjs/clarification-resume.d.ts +21 -0
- package/dist/cjs/server/adapters/nextjs/clarification-resume.js +112 -0
- package/dist/cjs/server/adapters/nextjs/context-helpers.d.ts +49 -8
- package/dist/cjs/server/adapters/nextjs/context-helpers.js +76 -21
- package/dist/cjs/server/adapters/nextjs/create-ai-chat-handler.d.ts +59 -1
- package/dist/cjs/server/adapters/nextjs/create-ai-chat-handler.js +648 -94
- package/dist/cjs/server/adapters/nextjs/direct-command.d.ts +75 -0
- package/dist/cjs/server/adapters/nextjs/direct-command.js +322 -0
- package/dist/cjs/server/adapters/nextjs/index.d.ts +10 -2
- package/dist/cjs/server/adapters/nextjs/index.js +24 -1
- package/dist/cjs/server/adapters/nextjs/prepare-model-messages.d.ts +2 -1
- package/dist/cjs/server/adapters/nextjs/prepare-model-messages.js +6 -14
- package/dist/cjs/server/adapters/nextjs/recording-transcription-handler.d.ts +31 -0
- package/dist/cjs/server/adapters/nextjs/recording-transcription-handler.js +58 -0
- package/dist/cjs/server/adapters/nextjs/request-guards.d.ts +41 -0
- package/dist/cjs/server/adapters/nextjs/request-guards.js +112 -0
- package/dist/cjs/server/adapters/nextjs/sanitize-model-messages.js +12 -6
- package/dist/cjs/server/adapters/nextjs/scope-pipeline-tools.d.ts +17 -0
- package/dist/cjs/server/adapters/nextjs/scope-pipeline-tools.js +28 -0
- package/dist/cjs/server/adapters/nextjs/tool-discovery.d.ts +39 -0
- package/dist/cjs/server/adapters/nextjs/tool-discovery.js +50 -0
- package/dist/cjs/server/adapters/nextjs/tool-presentation.d.ts +26 -0
- package/dist/cjs/server/adapters/nextjs/tool-presentation.js +21 -0
- package/dist/cjs/server/adapters/nextjs/types.d.ts +229 -13
- package/dist/cjs/server/adapters/nextjs/with-ai-tool.d.ts +2 -2
- package/dist/cjs/server/core/adaptive-fast-path.d.ts +3 -0
- package/dist/cjs/server/core/adaptive-fast-path.js +188 -0
- package/dist/cjs/server/core/clarification-tool.d.ts +29 -0
- package/dist/cjs/server/core/clarification-tool.js +64 -0
- package/dist/cjs/server/core/generated-ui-tool.d.ts +31 -0
- package/dist/cjs/server/core/generated-ui-tool.js +89 -0
- package/dist/cjs/server/core/index.d.ts +49 -8
- package/dist/cjs/server/core/index.js +208 -17
- package/dist/cjs/server/core/local-guardrails.d.ts +6 -0
- package/dist/cjs/server/core/local-guardrails.js +70 -0
- package/dist/cjs/server/core/module-router.d.ts +3 -1
- package/dist/cjs/server/core/module-router.js +22 -2
- package/dist/cjs/server/core/plan-tool.d.ts +23 -0
- package/dist/cjs/server/core/plan-tool.js +35 -0
- package/dist/cjs/server/core/zod-compact.d.ts +2 -2
- package/dist/cjs/server/core/zod-compact.js +56 -7
- package/dist/cjs/server/index.d.ts +2 -4
- package/dist/cjs/server/index.js +4 -5
- package/dist/cjs/server/lancer/client.js +2 -1
- package/dist/cjs/server/local-pipeline.d.ts +14 -0
- package/dist/cjs/server/local-pipeline.js +154 -0
- package/dist/cjs/server/pii-shield/index.d.ts +1 -0
- package/dist/cjs/server/pii-shield/index.js +3 -1
- package/dist/cjs/server/pii-shield/regex-detector.d.ts +13 -0
- package/dist/cjs/server/pii-shield/regex-detector.js +111 -0
- package/dist/cjs/server/testing/guardrails.js +2 -66
- package/dist/cjs/server/testing/helpers.js +1 -62
- package/dist/cjs/server/testing/index.d.ts +1 -0
- package/dist/cjs/server/testing/index.js +3 -1
- package/dist/cjs/server/testing/registry-parity.d.ts +18 -0
- package/dist/cjs/server/testing/registry-parity.js +40 -0
- package/dist/cjs/server/testing/smoke.d.ts +2 -1
- package/dist/cjs/server/testing/smoke.js +7 -3
- package/dist/cjs/server/testing/types.d.ts +1 -1
- package/dist/cjs/server/testing/zod-introspect.d.ts +1 -1
- package/dist/cjs/server/testing/zod-introspect.js +178 -5
- package/dist/cjs/stt/index.d.ts +5 -0
- package/dist/cjs/stt/index.js +16 -0
- package/dist/cjs/sync/app-setup-client.d.ts +46 -0
- package/dist/cjs/sync/app-setup-client.js +140 -0
- package/dist/cjs/sync/capability-report.d.ts +41 -0
- package/dist/cjs/sync/capability-report.js +52 -0
- package/dist/cjs/sync/connection-lookup.d.ts +19 -0
- package/dist/cjs/sync/connection-lookup.js +58 -0
- package/dist/cjs/sync/control-plane-client.d.ts +69 -0
- package/dist/cjs/sync/control-plane-client.js +186 -0
- package/dist/cjs/sync/deployment-selector.d.ts +9 -0
- package/dist/cjs/sync/deployment-selector.js +29 -0
- package/dist/cjs/sync/fetch-sse-push.d.ts +6 -0
- package/dist/cjs/sync/fetch-sse-push.js +45 -0
- package/dist/cjs/sync/index.d.ts +26 -0
- package/dist/cjs/sync/index.js +43 -0
- package/dist/cjs/sync/jwks-provider.d.ts +14 -0
- package/dist/cjs/sync/jwks-provider.js +56 -0
- package/dist/cjs/sync/local-deployment-validator.d.ts +30 -0
- package/dist/cjs/sync/local-deployment-validator.js +62 -0
- package/dist/cjs/sync/managed-sync.d.ts +40 -0
- package/dist/cjs/sync/managed-sync.js +96 -0
- package/dist/cjs/sync/materialize-deployment.d.ts +7 -0
- package/dist/cjs/sync/materialize-deployment.js +65 -0
- package/dist/cjs/sync/runtime-connect-client.d.ts +23 -0
- package/dist/cjs/sync/runtime-connect-client.js +185 -0
- package/dist/cjs/sync/runtime-setup-client.d.ts +62 -0
- package/dist/cjs/sync/runtime-setup-client.js +157 -0
- package/dist/cjs/sync/signature-verifier.d.ts +39 -0
- package/dist/cjs/sync/signature-verifier.js +102 -0
- package/dist/cjs/sync/state-store.d.ts +24 -0
- package/dist/cjs/sync/state-store.js +51 -0
- package/dist/cjs/sync/sync-manager.d.ts +27 -0
- package/dist/cjs/sync/sync-manager.js +173 -0
- package/dist/cjs/types.d.ts +68 -16
- package/dist/cjs/types.js +30 -2
- package/dist/cli/bin.js +34 -23
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/commands/agent-setup.d.ts +27 -0
- package/dist/cli/commands/agent-setup.js +149 -0
- package/dist/cli/commands/agent-setup.js.map +1 -0
- package/dist/cli/commands/apply-setup-plan.d.ts +21 -0
- package/dist/cli/commands/apply-setup-plan.js +100 -0
- package/dist/cli/commands/apply-setup-plan.js.map +1 -0
- package/dist/cli/commands/atomic-artifact-write.d.ts +19 -0
- package/dist/cli/commands/atomic-artifact-write.js +106 -0
- package/dist/cli/commands/atomic-artifact-write.js.map +1 -0
- package/dist/cli/commands/ci-workflow.d.ts +48 -0
- package/dist/cli/commands/ci-workflow.js +209 -0
- package/dist/cli/commands/ci-workflow.js.map +1 -0
- package/dist/cli/commands/connect.d.ts +47 -0
- package/dist/cli/commands/connect.js +216 -0
- package/dist/cli/commands/connect.js.map +1 -0
- package/dist/cli/commands/connection-descriptor.d.ts +4 -0
- package/dist/cli/commands/connection-descriptor.js +47 -0
- package/dist/cli/commands/connection-descriptor.js.map +1 -0
- package/dist/cli/commands/connection-environment.d.ts +25 -0
- package/dist/cli/commands/connection-environment.js +151 -0
- package/dist/cli/commands/connection-environment.js.map +1 -0
- package/dist/cli/commands/current-setup-manifests.d.ts +7 -0
- package/dist/cli/commands/current-setup-manifests.js +16 -0
- package/dist/cli/commands/current-setup-manifests.js.map +1 -0
- package/dist/cli/commands/doctor-presentation.d.ts +5 -0
- package/dist/cli/commands/doctor-presentation.js +86 -0
- package/dist/cli/commands/doctor-presentation.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +27 -0
- package/dist/cli/commands/doctor.js +220 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/init-scaffold.d.ts +25 -0
- package/dist/cli/commands/init-scaffold.js +214 -0
- package/dist/cli/commands/init-scaffold.js.map +1 -0
- package/dist/cli/commands/install-skills.d.ts +26 -4
- package/dist/cli/commands/install-skills.js +165 -80
- package/dist/cli/commands/install-skills.js.map +1 -1
- package/dist/cli/commands/installed-skills-manifest.d.ts +87 -0
- package/dist/cli/commands/installed-skills-manifest.js +124 -0
- package/dist/cli/commands/installed-skills-manifest.js.map +1 -0
- package/dist/cli/commands/installer-parts.d.ts +31 -0
- package/dist/cli/commands/installer-parts.js +94 -0
- package/dist/cli/commands/installer-parts.js.map +1 -0
- package/dist/cli/commands/project-inspection.d.ts +35 -0
- package/dist/cli/commands/project-inspection.js +199 -0
- package/dist/cli/commands/project-inspection.js.map +1 -0
- package/dist/cli/commands/setup-plan.d.ts +65 -0
- package/dist/cli/commands/setup-plan.js +234 -0
- package/dist/cli/commands/setup-plan.js.map +1 -0
- package/dist/cli/commands/setup-profile.d.ts +28 -0
- package/dist/cli/commands/setup-profile.js +152 -0
- package/dist/cli/commands/setup-profile.js.map +1 -0
- package/dist/cli/commands/setup-wizard.d.ts +66 -0
- package/dist/cli/commands/setup-wizard.js +241 -0
- package/dist/cli/commands/setup-wizard.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +58 -0
- package/dist/cli/commands/sync.js +233 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/tools/args.d.ts +14 -0
- package/dist/cli/commands/tools/args.js +33 -0
- package/dist/cli/commands/tools/args.js.map +1 -0
- package/dist/cli/commands/tools/check.d.ts +7 -0
- package/dist/cli/commands/tools/check.js +35 -0
- package/dist/cli/commands/tools/check.js.map +1 -0
- package/dist/cli/commands/tools/describe.d.ts +12 -0
- package/dist/cli/commands/tools/describe.js +43 -0
- package/dist/cli/commands/tools/describe.js.map +1 -0
- package/dist/cli/commands/tools/enrich.d.ts +50 -0
- package/dist/cli/commands/tools/enrich.js +597 -0
- package/dist/cli/commands/tools/enrich.js.map +1 -0
- package/dist/cli/commands/tools/eval.d.ts +13 -0
- package/dist/cli/commands/tools/eval.js +49 -0
- package/dist/cli/commands/tools/eval.js.map +1 -0
- package/dist/cli/commands/tools/format.d.ts +42 -0
- package/dist/cli/commands/tools/format.js +155 -0
- package/dist/cli/commands/tools/format.js.map +1 -0
- package/dist/cli/commands/tools/index.d.ts +26 -0
- package/dist/cli/commands/tools/index.js +107 -0
- package/dist/cli/commands/tools/index.js.map +1 -0
- package/dist/cli/commands/tools/policy.d.ts +11 -0
- package/dist/cli/commands/tools/policy.js +355 -0
- package/dist/cli/commands/tools/policy.js.map +1 -0
- package/dist/cli/commands/tools/refresh.d.ts +6 -0
- package/dist/cli/commands/tools/refresh.js +87 -0
- package/dist/cli/commands/tools/refresh.js.map +1 -0
- package/dist/cli/commands/tools/resolve.d.ts +10 -0
- package/dist/cli/commands/tools/resolve.js +19 -0
- package/dist/cli/commands/tools/resolve.js.map +1 -0
- package/dist/cli/commands/tools/status.d.ts +11 -0
- package/dist/cli/commands/tools/status.js +76 -0
- package/dist/cli/commands/tools/status.js.map +1 -0
- package/dist/cli/commands/tools/verify.d.ts +13 -0
- package/dist/cli/commands/tools/verify.js +168 -0
- package/dist/cli/commands/tools/verify.js.map +1 -0
- package/dist/cli/commands/tools/watch.d.ts +27 -0
- package/dist/cli/commands/tools/watch.js +148 -0
- package/dist/cli/commands/tools/watch.js.map +1 -0
- package/dist/cli/commands/validate-build.d.ts +88 -0
- package/dist/cli/commands/validate-build.js +213 -0
- package/dist/cli/commands/validate-build.js.map +1 -0
- package/dist/cli/commands/workspace-sources.d.ts +27 -0
- package/dist/cli/commands/workspace-sources.js +159 -0
- package/dist/cli/commands/workspace-sources.js.map +1 -0
- package/dist/cli/environment-loading.d.ts +6 -0
- package/dist/cli/environment-loading.js +18 -0
- package/dist/cli/environment-loading.js.map +1 -0
- package/dist/cli/index.d.ts +14 -1
- package/dist/cli/index.js +558 -574
- package/dist/cli/index.js.map +1 -1
- package/dist/codegen/execution-inventory.d.ts +63 -0
- package/dist/codegen/execution-inventory.js +306 -0
- package/dist/codegen/execution-inventory.js.map +1 -0
- package/dist/codegen/index.d.ts +4 -13
- package/dist/codegen/index.js +4 -12
- package/dist/codegen/index.js.map +1 -1
- package/dist/codegen/inventory-generation.d.ts +104 -0
- package/dist/codegen/inventory-generation.js +119 -0
- package/dist/codegen/inventory-generation.js.map +1 -0
- package/dist/codegen/next-source-generation.d.ts +17 -0
- package/dist/codegen/next-source-generation.js +49 -0
- package/dist/codegen/next-source-generation.js.map +1 -0
- package/dist/codegen/openapi-document.d.ts +53 -0
- package/dist/codegen/openapi-document.js +120 -0
- package/dist/codegen/openapi-document.js.map +1 -0
- package/dist/codegen/route-exports.d.ts +13 -0
- package/dist/codegen/route-exports.js +117 -0
- package/dist/codegen/route-exports.js.map +1 -0
- package/dist/codegen/route-fingerprint.d.ts +2 -0
- package/dist/codegen/route-fingerprint.js +9 -0
- package/dist/codegen/route-fingerprint.js.map +1 -0
- package/dist/codegen/route-scanner.d.ts +57 -0
- package/dist/codegen/route-scanner.js +233 -0
- package/dist/codegen/route-scanner.js.map +1 -0
- package/dist/codegen/tools/agentic.d.ts +31 -0
- package/dist/codegen/tools/agentic.js +110 -0
- package/dist/codegen/tools/agentic.js.map +1 -0
- package/dist/codegen/tools/artifact.d.ts +139 -0
- package/dist/codegen/tools/artifact.js +199 -0
- package/dist/codegen/tools/artifact.js.map +1 -0
- package/dist/codegen/tools/canonical.d.ts +12 -0
- package/dist/codegen/tools/canonical.js +41 -0
- package/dist/codegen/tools/canonical.js.map +1 -0
- package/dist/codegen/tools/chat-interactions.d.ts +27 -0
- package/dist/codegen/tools/chat-interactions.js +377 -0
- package/dist/codegen/tools/chat-interactions.js.map +1 -0
- package/dist/codegen/tools/config.d.ts +116 -0
- package/dist/codegen/tools/config.js +172 -0
- package/dist/codegen/tools/config.js.map +1 -0
- package/dist/codegen/tools/contract-tiers.d.ts +64 -0
- package/dist/codegen/tools/contract-tiers.js +518 -0
- package/dist/codegen/tools/contract-tiers.js.map +1 -0
- package/dist/codegen/tools/emit-module.d.ts +13 -0
- package/dist/codegen/tools/emit-module.js +182 -0
- package/dist/codegen/tools/emit-module.js.map +1 -0
- package/dist/codegen/tools/evidence.d.ts +13 -0
- package/dist/codegen/tools/evidence.js +138 -0
- package/dist/codegen/tools/evidence.js.map +1 -0
- package/dist/codegen/tools/exclusions.d.ts +30 -0
- package/dist/codegen/tools/exclusions.js +95 -0
- package/dist/codegen/tools/exclusions.js.map +1 -0
- package/dist/codegen/tools/files.d.ts +195 -0
- package/dist/codegen/tools/files.js +119 -0
- package/dist/codegen/tools/files.js.map +1 -0
- package/dist/codegen/tools/findings.d.ts +7 -0
- package/dist/codegen/tools/findings.js +106 -0
- package/dist/codegen/tools/findings.js.map +1 -0
- package/dist/codegen/tools/handler-analysis.d.ts +49 -0
- package/dist/codegen/tools/handler-analysis.js +375 -0
- package/dist/codegen/tools/handler-analysis.js.map +1 -0
- package/dist/codegen/tools/handler-locator.d.ts +21 -0
- package/dist/codegen/tools/handler-locator.js +152 -0
- package/dist/codegen/tools/handler-locator.js.map +1 -0
- package/dist/codegen/tools/identity.d.ts +18 -0
- package/dist/codegen/tools/identity.js +100 -0
- package/dist/codegen/tools/identity.js.map +1 -0
- package/dist/codegen/tools/input-roles.d.ts +32 -0
- package/dist/codegen/tools/input-roles.js +283 -0
- package/dist/codegen/tools/input-roles.js.map +1 -0
- package/dist/codegen/tools/inputs.d.ts +33 -0
- package/dist/codegen/tools/inputs.js +101 -0
- package/dist/codegen/tools/inputs.js.map +1 -0
- package/dist/codegen/tools/interface-digest.d.ts +14 -0
- package/dist/codegen/tools/interface-digest.js +24 -0
- package/dist/codegen/tools/interface-digest.js.map +1 -0
- package/dist/codegen/tools/mcp-names.d.ts +23 -0
- package/dist/codegen/tools/mcp-names.js +59 -0
- package/dist/codegen/tools/mcp-names.js.map +1 -0
- package/dist/codegen/tools/mode.d.ts +7 -0
- package/dist/codegen/tools/mode.js +27 -0
- package/dist/codegen/tools/mode.js.map +1 -0
- package/dist/codegen/tools/output-inference.d.ts +6 -0
- package/dist/codegen/tools/output-inference.js +99 -0
- package/dist/codegen/tools/output-inference.js.map +1 -0
- package/dist/codegen/tools/pipeline.d.ts +85 -0
- package/dist/codegen/tools/pipeline.js +733 -0
- package/dist/codegen/tools/pipeline.js.map +1 -0
- package/dist/codegen/tools/probe-child.mjs +155 -0
- package/dist/codegen/tools/probe-loader.mjs +105 -0
- package/dist/codegen/tools/program.d.ts +16 -0
- package/dist/codegen/tools/program.js +80 -0
- package/dist/codegen/tools/program.js.map +1 -0
- package/dist/codegen/tools/prose.d.ts +42 -0
- package/dist/codegen/tools/prose.js +211 -0
- package/dist/codegen/tools/prose.js.map +1 -0
- package/dist/codegen/tools/resolutions.d.ts +117 -0
- package/dist/codegen/tools/resolutions.js +195 -0
- package/dist/codegen/tools/resolutions.js.map +1 -0
- package/dist/codegen/tools/routing-eval.d.ts +50 -0
- package/dist/codegen/tools/routing-eval.js +81 -0
- package/dist/codegen/tools/routing-eval.js.map +1 -0
- package/dist/codegen/tools/schema-probe.d.ts +62 -0
- package/dist/codegen/tools/schema-probe.js +209 -0
- package/dist/codegen/tools/schema-probe.js.map +1 -0
- package/dist/codegen/tools/semantics.d.ts +134 -0
- package/dist/codegen/tools/semantics.js +206 -0
- package/dist/codegen/tools/semantics.js.map +1 -0
- package/dist/codegen/tools/sources/app-files.d.ts +35 -0
- package/dist/codegen/tools/sources/app-files.js +109 -0
- package/dist/codegen/tools/sources/app-files.js.map +1 -0
- package/dist/codegen/tools/sources/fastapi-routes.py +177 -0
- package/dist/codegen/tools/sources/nest-decorators.d.ts +27 -0
- package/dist/codegen/tools/sources/nest-decorators.js +65 -0
- package/dist/codegen/tools/sources/nest-decorators.js.map +1 -0
- package/dist/codegen/tools/sources/nest-endpoints.d.ts +10 -0
- package/dist/codegen/tools/sources/nest-endpoints.js +522 -0
- package/dist/codegen/tools/sources/nest-endpoints.js.map +1 -0
- package/dist/codegen/tools/sources/next-endpoints.d.ts +5 -0
- package/dist/codegen/tools/sources/next-endpoints.js +389 -0
- package/dist/codegen/tools/sources/next-endpoints.js.map +1 -0
- package/dist/codegen/tools/sources/next-pages.d.ts +18 -0
- package/dist/codegen/tools/sources/next-pages.js +88 -0
- package/dist/codegen/tools/sources/next-pages.js.map +1 -0
- package/dist/codegen/tools/sources/openapi-endpoints.d.ts +17 -0
- package/dist/codegen/tools/sources/openapi-endpoints.js +395 -0
- package/dist/codegen/tools/sources/openapi-endpoints.js.map +1 -0
- package/dist/codegen/tools/sources/page-tree.d.ts +49 -0
- package/dist/codegen/tools/sources/page-tree.js +152 -0
- package/dist/codegen/tools/sources/page-tree.js.map +1 -0
- package/dist/codegen/tools/sources/react-actions.d.ts +12 -0
- package/dist/codegen/tools/sources/react-actions.js +341 -0
- package/dist/codegen/tools/sources/react-actions.js.map +1 -0
- package/dist/codegen/tools/sources/route-config.d.ts +49 -0
- package/dist/codegen/tools/sources/route-config.js +427 -0
- package/dist/codegen/tools/sources/route-config.js.map +1 -0
- package/dist/codegen/tools/sources/ui-controls.d.ts +41 -0
- package/dist/codegen/tools/sources/ui-controls.js +360 -0
- package/dist/codegen/tools/sources/ui-controls.js.map +1 -0
- package/dist/codegen/tools/sources/ui-tools.d.ts +79 -0
- package/dist/codegen/tools/sources/ui-tools.js +207 -0
- package/dist/codegen/tools/sources/ui-tools.js.map +1 -0
- package/dist/codegen/tools/sources/url-filters.d.ts +41 -0
- package/dist/codegen/tools/sources/url-filters.js +813 -0
- package/dist/codegen/tools/sources/url-filters.js.map +1 -0
- package/dist/codegen/tools/sources/vue-sfc.d.ts +22 -0
- package/dist/codegen/tools/sources/vue-sfc.js +65 -0
- package/dist/codegen/tools/sources/vue-sfc.js.map +1 -0
- package/dist/codegen/tools/state.d.ts +37 -0
- package/dist/codegen/tools/state.js +249 -0
- package/dist/codegen/tools/state.js.map +1 -0
- package/dist/codegen/tools/types.d.ts +137 -0
- package/dist/codegen/tools/types.js +2 -0
- package/dist/codegen/tools/types.js.map +1 -0
- package/dist/codegen/tools/worklist.d.ts +157 -0
- package/dist/codegen/tools/worklist.js +406 -0
- package/dist/codegen/tools/worklist.js.map +1 -0
- package/dist/contracts/app-setup.d.ts +346 -0
- package/dist/contracts/app-setup.js +205 -0
- package/dist/contracts/app-setup.js.map +1 -0
- package/dist/contracts/chat-command.d.ts +65 -0
- package/dist/contracts/chat-command.js +121 -0
- package/dist/contracts/chat-command.js.map +1 -0
- package/dist/contracts/chat-interactions.d.ts +126 -0
- package/dist/contracts/chat-interactions.js +431 -0
- package/dist/contracts/chat-interactions.js.map +1 -0
- package/dist/contracts/clarification.d.ts +53 -0
- package/dist/contracts/clarification.js +86 -0
- package/dist/contracts/clarification.js.map +1 -0
- package/dist/contracts/content-boundary.d.ts +3 -0
- package/dist/contracts/content-boundary.js +91 -0
- package/dist/contracts/content-boundary.js.map +1 -0
- package/dist/contracts/events.d.ts +273 -0
- package/dist/contracts/events.js +227 -0
- package/dist/contracts/events.js.map +1 -0
- package/dist/contracts/index.d.ts +18 -0
- package/dist/contracts/index.js +10 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/plan.d.ts +20 -0
- package/dist/contracts/plan.js +35 -0
- package/dist/contracts/plan.js.map +1 -0
- package/dist/contracts/platform-connection.d.ts +44 -0
- package/dist/contracts/platform-connection.js +64 -0
- package/dist/contracts/platform-connection.js.map +1 -0
- package/dist/contracts/platform-prompt-revision.d.ts +27 -0
- package/dist/contracts/platform-prompt-revision.js +44 -0
- package/dist/contracts/platform-prompt-revision.js.map +1 -0
- package/dist/contracts/prompt-bundle.d.ts +46 -0
- package/dist/contracts/prompt-bundle.js +70 -0
- package/dist/contracts/prompt-bundle.js.map +1 -0
- package/dist/contracts/revisions.d.ts +716 -0
- package/dist/contracts/revisions.js +298 -0
- package/dist/contracts/revisions.js.map +1 -0
- package/dist/contracts/runtime.d.ts +55 -0
- package/dist/contracts/runtime.js +65 -0
- package/dist/contracts/runtime.js.map +1 -0
- package/dist/contracts/semantic-change.d.ts +27 -0
- package/dist/contracts/semantic-change.js +101 -0
- package/dist/contracts/semantic-change.js.map +1 -0
- package/dist/contracts/tool-exclude-pattern.d.ts +12 -0
- package/dist/contracts/tool-exclude-pattern.js +27 -0
- package/dist/contracts/tool-exclude-pattern.js.map +1 -0
- package/dist/contracts/tool-policy-entry.d.ts +107 -0
- package/dist/contracts/tool-policy-entry.js +40 -0
- package/dist/contracts/tool-policy-entry.js.map +1 -0
- package/dist/contracts/tool-policy.d.ts +198 -0
- package/dist/contracts/tool-policy.js +485 -0
- package/dist/contracts/tool-policy.js.map +1 -0
- package/dist/contracts/url.d.ts +2 -0
- package/dist/contracts/url.js +8 -0
- package/dist/contracts/url.js.map +1 -0
- package/dist/diagnostics/foundation-diagnostic.d.ts +34 -0
- package/dist/diagnostics/foundation-diagnostic.js +47 -0
- package/dist/diagnostics/foundation-diagnostic.js.map +1 -0
- package/dist/diagnostics/index.d.ts +2 -0
- package/dist/diagnostics/index.js +2 -0
- package/dist/diagnostics/index.js.map +1 -0
- package/dist/embed/chat-styles.generated.d.ts +1 -0
- package/dist/embed/chat-styles.generated.js +4 -0
- package/dist/embed/chat-styles.generated.js.map +1 -0
- package/dist/embed/glirastes-chat-element.d.ts +67 -0
- package/dist/embed/glirastes-chat-element.js +278 -0
- package/dist/embed/glirastes-chat-element.js.map +1 -0
- package/dist/embed/index.d.ts +4 -0
- package/dist/embed/index.js +11 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed/theme.d.ts +10 -0
- package/dist/embed/theme.js +41 -0
- package/dist/embed/theme.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/react/assistant/assistant-layout.d.ts +55 -0
- package/dist/react/assistant/assistant-layout.js +99 -0
- package/dist/react/assistant/assistant-layout.js.map +1 -0
- package/dist/react/assistant/assistant-shell.d.ts +132 -0
- package/dist/react/assistant/assistant-shell.js +262 -0
- package/dist/react/assistant/assistant-shell.js.map +1 -0
- package/dist/react/assistant/assistant-shortcut-list.d.ts +24 -0
- package/dist/react/assistant/assistant-shortcut-list.js +32 -0
- package/dist/react/assistant/assistant-shortcut-list.js.map +1 -0
- package/dist/react/assistant/assistant-workspace.d.ts +31 -0
- package/dist/react/assistant/assistant-workspace.js +31 -0
- package/dist/react/assistant/assistant-workspace.js.map +1 -0
- package/dist/react/completions/completion-search.d.ts +21 -0
- package/dist/react/completions/completion-search.js +109 -0
- package/dist/react/completions/completion-search.js.map +1 -0
- package/dist/react/completions/ui-tool-command-provider.d.ts +15 -0
- package/dist/react/completions/ui-tool-command-provider.js +82 -0
- package/dist/react/completions/ui-tool-command-provider.js.map +1 -0
- package/dist/react/components/activity-log.d.ts +17 -0
- package/dist/react/components/activity-log.js +68 -0
- package/dist/react/components/activity-log.js.map +1 -0
- package/dist/react/components/ai-chat-panel.js +13 -6
- package/dist/react/components/ai-chat-panel.js.map +1 -1
- package/dist/react/components/ai-trigger-button.d.ts +1 -1
- package/dist/react/components/ai-trigger-button.js +13 -68
- package/dist/react/components/ai-trigger-button.js.map +1 -1
- package/dist/react/components/approval-card.js +20 -1
- package/dist/react/components/approval-card.js.map +1 -1
- package/dist/react/components/chat-input.js +7 -5
- package/dist/react/components/chat-input.js.map +1 -1
- package/dist/react/components/chat-window-visibility.d.ts +3 -0
- package/dist/react/components/chat-window-visibility.js +5 -0
- package/dist/react/components/chat-window-visibility.js.map +1 -0
- package/dist/react/components/chat-window.d.ts +1 -1
- package/dist/react/components/chat-window.js +124 -57
- package/dist/react/components/chat-window.js.map +1 -1
- package/dist/react/components/clarification-card.d.ts +10 -0
- package/dist/react/components/clarification-card.js +33 -0
- package/dist/react/components/clarification-card.js.map +1 -0
- package/dist/react/components/command-arguments-form.d.ts +10 -0
- package/dist/react/components/command-arguments-form.js +151 -0
- package/dist/react/components/command-arguments-form.js.map +1 -0
- package/dist/react/components/confirm-dialog.js +1 -1
- package/dist/react/components/confirm-dialog.js.map +1 -1
- package/dist/react/components/floating-chat-ui.d.ts +3 -3
- package/dist/react/components/floating-chat-ui.js +31 -5
- package/dist/react/components/floating-chat-ui.js.map +1 -1
- package/dist/react/components/mention-input.d.ts +5 -4
- package/dist/react/components/mention-input.js +65 -8
- package/dist/react/components/mention-input.js.map +1 -1
- package/dist/react/components/message-bubble.js +90 -14
- package/dist/react/components/message-bubble.js.map +1 -1
- package/dist/react/components/plan-checklist.d.ts +14 -0
- package/dist/react/components/plan-checklist.js +18 -0
- package/dist/react/components/plan-checklist.js.map +1 -0
- package/dist/react/components/recording-bar.js +45 -59
- package/dist/react/components/recording-bar.js.map +1 -1
- package/dist/react/components/rich-mention-input.js +199 -47
- package/dist/react/components/rich-mention-input.js.map +1 -1
- package/dist/react/components/session-switcher.d.ts +3 -1
- package/dist/react/components/session-switcher.js +27 -12
- package/dist/react/components/session-switcher.js.map +1 -1
- package/dist/react/components/status-icon.d.ts +8 -0
- package/dist/react/components/status-icon.js +9 -0
- package/dist/react/components/status-icon.js.map +1 -0
- package/dist/react/components/stream-waveform.d.ts +4 -0
- package/dist/react/components/stream-waveform.js +47 -0
- package/dist/react/components/stream-waveform.js.map +1 -0
- package/dist/react/components/voice-input-addon.d.ts +16 -1
- package/dist/react/components/voice-input-addon.js +256 -19
- package/dist/react/components/voice-input-addon.js.map +1 -1
- package/dist/react/components/voice-input-button.js +1 -1
- package/dist/react/components/voice-input-button.js.map +1 -1
- package/dist/react/hooks/use-chat-shortcuts.d.ts +33 -0
- package/dist/react/hooks/use-chat-shortcuts.js +133 -0
- package/dist/react/hooks/use-chat-shortcuts.js.map +1 -0
- package/dist/react/hooks/use-deepgram-transcription.d.ts +4 -0
- package/dist/react/hooks/use-deepgram-transcription.js +32 -322
- package/dist/react/hooks/use-deepgram-transcription.js.map +1 -1
- package/dist/react/hooks/use-drag-resize-panel.d.ts +1 -0
- package/dist/react/hooks/use-drag-resize-panel.js +246 -121
- package/dist/react/hooks/use-drag-resize-panel.js.map +1 -1
- package/dist/react/hooks/use-floating-panel.d.ts +57 -0
- package/dist/react/hooks/use-floating-panel.js +215 -0
- package/dist/react/hooks/use-floating-panel.js.map +1 -0
- package/dist/react/hooks/use-keyboard-shortcut.js +2 -1
- package/dist/react/hooks/use-keyboard-shortcut.js.map +1 -1
- package/dist/react/hooks/use-push-to-talk-hotkey.d.ts +24 -0
- package/dist/react/hooks/use-push-to-talk-hotkey.js +112 -0
- package/dist/react/hooks/use-push-to-talk-hotkey.js.map +1 -0
- package/dist/react/hooks/use-sidebar-resize.d.ts +19 -0
- package/dist/react/hooks/use-sidebar-resize.js +107 -0
- package/dist/react/hooks/use-sidebar-resize.js.map +1 -0
- package/dist/react/index.d.ts +30 -1
- package/dist/react/index.js +31 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/interactions/definitions.d.ts +67 -0
- package/dist/react/interactions/definitions.js +78 -0
- package/dist/react/interactions/definitions.js.map +1 -0
- package/dist/react/interactions/registry.d.ts +74 -0
- package/dist/react/interactions/registry.js +248 -0
- package/dist/react/interactions/registry.js.map +1 -0
- package/dist/react/interactions/use-chat-interactions-data.d.ts +15 -0
- package/dist/react/interactions/use-chat-interactions-data.js +41 -0
- package/dist/react/interactions/use-chat-interactions-data.js.map +1 -0
- package/dist/react/locale-de.d.ts +3 -0
- package/dist/react/locale-de.js +67 -0
- package/dist/react/locale-de.js.map +1 -0
- package/dist/react/provider/ai-chat-provider.d.ts +1 -1
- package/dist/react/provider/ai-chat-provider.js +411 -107
- package/dist/react/provider/ai-chat-provider.js.map +1 -1
- package/dist/react/provider/chat-context.d.ts +52 -1
- package/dist/react/provider/chat-context.js.map +1 -1
- package/dist/react/stt/controller.d.ts +60 -0
- package/dist/react/stt/controller.js +265 -0
- package/dist/react/stt/controller.js.map +1 -0
- package/dist/react/stt/deepgram.d.ts +30 -0
- package/dist/react/stt/deepgram.js +199 -0
- package/dist/react/stt/deepgram.js.map +1 -0
- package/dist/react/stt/recorded.d.ts +29 -0
- package/dist/react/stt/recorded.js +111 -0
- package/dist/react/stt/recorded.js.map +1 -0
- package/dist/react/stt/segments.d.ts +18 -0
- package/dist/react/stt/segments.js +29 -0
- package/dist/react/stt/segments.js.map +1 -0
- package/dist/react/stt/use-stt.d.ts +17 -0
- package/dist/react/stt/use-stt.js +39 -0
- package/dist/react/stt/use-stt.js.map +1 -0
- package/dist/react/stt/waveform.d.ts +5 -0
- package/dist/react/stt/waveform.js +29 -0
- package/dist/react/stt/waveform.js.map +1 -0
- package/dist/react/styles.css +784 -126
- package/dist/react/tool-renderers/registry.d.ts +31 -0
- package/dist/react/tool-renderers/registry.js +47 -0
- package/dist/react/tool-renderers/registry.js.map +1 -0
- package/dist/react/tool-renderers/renderer-boundary.d.ts +18 -0
- package/dist/react/tool-renderers/renderer-boundary.js +12 -0
- package/dist/react/tool-renderers/renderer-boundary.js.map +1 -0
- package/dist/react/transports/vercel/vercel-ai-chat.d.ts +1 -1
- package/dist/react/transports/vercel/vercel-ai-chat.js +2 -2
- package/dist/react/transports/vercel/vercel-ai-chat.js.map +1 -1
- package/dist/react/transports/vercel.d.ts +6 -0
- package/dist/react/transports/vercel.js +11 -6
- package/dist/react/transports/vercel.js.map +1 -1
- package/dist/react/types.d.ts +269 -6
- package/dist/react/ui.d.ts +18 -17
- package/dist/react/ui.js +46 -43
- package/dist/react/ui.js.map +1 -1
- package/dist/react/unstyled.d.ts +7 -0
- package/dist/react/unstyled.js +8 -0
- package/dist/react/unstyled.js.map +1 -0
- package/dist/react/utils/activity.d.ts +16 -0
- package/dist/react/utils/activity.js +77 -0
- package/dist/react/utils/activity.js.map +1 -0
- package/dist/react/utils/clarification.d.ts +31 -0
- package/dist/react/utils/clarification.js +99 -0
- package/dist/react/utils/clarification.js.map +1 -0
- package/dist/react/utils/create-approval-description.d.ts +6 -0
- package/dist/react/utils/create-approval-description.js +42 -7
- package/dist/react/utils/create-approval-description.js.map +1 -1
- package/dist/react/utils/create-tool-result-handler.d.ts +1 -1
- package/dist/react/utils/create-tool-result-handler.js +1 -1
- package/dist/react/utils/create-tool-result-handler.js.map +1 -1
- package/dist/react/utils/entity-names.d.ts +6 -0
- package/dist/react/utils/entity-names.js +55 -0
- package/dist/react/utils/entity-names.js.map +1 -0
- package/dist/react/utils/followup-suggestions.d.ts +11 -0
- package/dist/react/utils/followup-suggestions.js +37 -0
- package/dist/react/utils/followup-suggestions.js.map +1 -0
- package/dist/react/utils/local-session-store.d.ts +30 -0
- package/dist/react/utils/local-session-store.js +163 -0
- package/dist/react/utils/local-session-store.js.map +1 -0
- package/dist/react/utils/mention-markup.d.ts +44 -1
- package/dist/react/utils/mention-markup.js +140 -10
- package/dist/react/utils/mention-markup.js.map +1 -1
- package/dist/react/utils/tool-presentation.d.ts +23 -0
- package/dist/react/utils/tool-presentation.js +41 -0
- package/dist/react/utils/tool-presentation.js.map +1 -0
- package/dist/react/utils/tool-result-config.d.ts +10 -0
- package/dist/react/utils/tool-result-config.js +12 -0
- package/dist/react/utils/tool-result-config.js.map +1 -0
- package/dist/runtime/ai-sdk/engine.d.ts +66 -0
- package/dist/runtime/ai-sdk/engine.js +188 -0
- package/dist/runtime/ai-sdk/engine.js.map +1 -0
- package/dist/runtime/ai-sdk/index.d.ts +1 -0
- package/dist/runtime/ai-sdk/index.js +2 -0
- package/dist/runtime/ai-sdk/index.js.map +1 -0
- package/dist/runtime/authorization.d.ts +16 -0
- package/dist/runtime/authorization.js +33 -0
- package/dist/runtime/authorization.js.map +1 -0
- package/dist/runtime/budget.d.ts +39 -0
- package/dist/runtime/budget.js +97 -0
- package/dist/runtime/budget.js.map +1 -0
- package/dist/runtime/contract-bindings.d.ts +52 -0
- package/dist/runtime/contract-bindings.js +92 -0
- package/dist/runtime/contract-bindings.js.map +1 -0
- package/dist/runtime/engine.d.ts +52 -0
- package/dist/runtime/engine.js +2 -0
- package/dist/runtime/engine.js.map +1 -0
- package/dist/runtime/fingerprint.d.ts +6 -0
- package/dist/runtime/fingerprint.js +29 -0
- package/dist/runtime/fingerprint.js.map +1 -0
- package/dist/runtime/glirastes.d.ts +113 -0
- package/dist/runtime/glirastes.js +287 -0
- package/dist/runtime/glirastes.js.map +1 -0
- package/dist/runtime/index.d.ts +24 -0
- package/dist/runtime/index.js +24 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/json-schema.d.ts +13 -0
- package/dist/runtime/json-schema.js +41 -0
- package/dist/runtime/json-schema.js.map +1 -0
- package/dist/runtime/local-limits.d.ts +6 -0
- package/dist/runtime/local-limits.js +23 -0
- package/dist/runtime/local-limits.js.map +1 -0
- package/dist/runtime/local-runtime-source.d.ts +76 -0
- package/dist/runtime/local-runtime-source.js +0 -0
- package/dist/runtime/local-runtime-source.js.map +1 -0
- package/dist/runtime/local-signer.d.ts +17 -0
- package/dist/runtime/local-signer.js +32 -0
- package/dist/runtime/local-signer.js.map +1 -0
- package/dist/runtime/local-tool-bindings.d.ts +57 -0
- package/dist/runtime/local-tool-bindings.js +190 -0
- package/dist/runtime/local-tool-bindings.js.map +1 -0
- package/dist/runtime/managed-turn.d.ts +29 -0
- package/dist/runtime/managed-turn.js +97 -0
- package/dist/runtime/managed-turn.js.map +1 -0
- package/dist/runtime/metrics/cost.d.ts +64 -0
- package/dist/runtime/metrics/cost.js +92 -0
- package/dist/runtime/metrics/cost.js.map +1 -0
- package/dist/runtime/metrics/sink.d.ts +56 -0
- package/dist/runtime/metrics/sink.js +214 -0
- package/dist/runtime/metrics/sink.js.map +1 -0
- package/dist/runtime/metrics/turn-recorder.d.ts +62 -0
- package/dist/runtime/metrics/turn-recorder.js +170 -0
- package/dist/runtime/metrics/turn-recorder.js.map +1 -0
- package/dist/runtime/offline-execution-lease.d.ts +27 -0
- package/dist/runtime/offline-execution-lease.js +46 -0
- package/dist/runtime/offline-execution-lease.js.map +1 -0
- package/dist/runtime/policy-overlay.d.ts +86 -0
- package/dist/runtime/policy-overlay.js +117 -0
- package/dist/runtime/policy-overlay.js.map +1 -0
- package/dist/runtime/postgres-store.d.ts +111 -0
- package/dist/runtime/postgres-store.js +363 -0
- package/dist/runtime/postgres-store.js.map +1 -0
- package/dist/runtime/prompt-bundle-store.d.ts +58 -0
- package/dist/runtime/prompt-bundle-store.js +120 -0
- package/dist/runtime/prompt-bundle-store.js.map +1 -0
- package/dist/runtime/runtime-mode.d.ts +23 -0
- package/dist/runtime/runtime-mode.js +42 -0
- package/dist/runtime/runtime-mode.js.map +1 -0
- package/dist/runtime/sdk-version.d.ts +2 -0
- package/dist/runtime/sdk-version.js +3 -0
- package/dist/runtime/sdk-version.js.map +1 -0
- package/dist/runtime/tool-discovery.d.ts +51 -0
- package/dist/runtime/tool-discovery.js +138 -0
- package/dist/runtime/tool-discovery.js.map +1 -0
- package/dist/runtime/tool-search.d.ts +31 -0
- package/dist/runtime/tool-search.js +145 -0
- package/dist/runtime/tool-search.js.map +1 -0
- package/dist/runtime/turn-snapshot.d.ts +44 -0
- package/dist/runtime/turn-snapshot.js +108 -0
- package/dist/runtime/turn-snapshot.js.map +1 -0
- package/dist/server/adapters/nextjs/approval-binding.d.ts +334 -0
- package/dist/server/adapters/nextjs/approval-binding.js +707 -0
- package/dist/server/adapters/nextjs/approval-binding.js.map +1 -0
- package/dist/server/adapters/nextjs/chat-interactions-handler.d.ts +26 -0
- package/dist/server/adapters/nextjs/chat-interactions-handler.js +65 -0
- package/dist/server/adapters/nextjs/chat-interactions-handler.js.map +1 -0
- package/dist/server/adapters/nextjs/clarification-resume.d.ts +21 -0
- package/dist/server/adapters/nextjs/clarification-resume.js +109 -0
- package/dist/server/adapters/nextjs/clarification-resume.js.map +1 -0
- package/dist/server/adapters/nextjs/context-helpers.d.ts +49 -8
- package/dist/server/adapters/nextjs/context-helpers.js +75 -21
- package/dist/server/adapters/nextjs/context-helpers.js.map +1 -1
- package/dist/server/adapters/nextjs/create-ai-chat-handler.d.ts +59 -1
- package/dist/server/adapters/nextjs/create-ai-chat-handler.js +647 -95
- package/dist/server/adapters/nextjs/create-ai-chat-handler.js.map +1 -1
- package/dist/server/adapters/nextjs/direct-command.d.ts +75 -0
- package/dist/server/adapters/nextjs/direct-command.js +316 -0
- package/dist/server/adapters/nextjs/direct-command.js.map +1 -0
- package/dist/server/adapters/nextjs/index.d.ts +10 -2
- package/dist/server/adapters/nextjs/index.js +7 -0
- package/dist/server/adapters/nextjs/index.js.map +1 -1
- package/dist/server/adapters/nextjs/prepare-model-messages.d.ts +2 -1
- package/dist/server/adapters/nextjs/prepare-model-messages.js +7 -15
- package/dist/server/adapters/nextjs/prepare-model-messages.js.map +1 -1
- package/dist/server/adapters/nextjs/recording-transcription-handler.d.ts +31 -0
- package/dist/server/adapters/nextjs/recording-transcription-handler.js +55 -0
- package/dist/server/adapters/nextjs/recording-transcription-handler.js.map +1 -0
- package/dist/server/adapters/nextjs/request-guards.d.ts +41 -0
- package/dist/server/adapters/nextjs/request-guards.js +108 -0
- package/dist/server/adapters/nextjs/request-guards.js.map +1 -0
- package/dist/server/adapters/nextjs/sanitize-model-messages.js +12 -6
- package/dist/server/adapters/nextjs/sanitize-model-messages.js.map +1 -1
- package/dist/server/adapters/nextjs/scope-pipeline-tools.d.ts +17 -0
- package/dist/server/adapters/nextjs/scope-pipeline-tools.js +26 -0
- package/dist/server/adapters/nextjs/scope-pipeline-tools.js.map +1 -0
- package/dist/server/adapters/nextjs/tool-discovery.d.ts +39 -0
- package/dist/server/adapters/nextjs/tool-discovery.js +47 -0
- package/dist/server/adapters/nextjs/tool-discovery.js.map +1 -0
- package/dist/server/adapters/nextjs/tool-presentation.d.ts +26 -0
- package/dist/server/adapters/nextjs/tool-presentation.js +19 -0
- package/dist/server/adapters/nextjs/tool-presentation.js.map +1 -0
- package/dist/server/adapters/nextjs/types.d.ts +229 -13
- package/dist/server/adapters/nextjs/with-ai-tool.d.ts +2 -2
- package/dist/server/core/adaptive-fast-path.d.ts +3 -0
- package/dist/server/core/adaptive-fast-path.js +185 -0
- package/dist/server/core/adaptive-fast-path.js.map +1 -0
- package/dist/server/core/clarification-tool.d.ts +29 -0
- package/dist/server/core/clarification-tool.js +61 -0
- package/dist/server/core/clarification-tool.js.map +1 -0
- package/dist/server/core/generated-ui-tool.d.ts +31 -0
- package/dist/server/core/generated-ui-tool.js +87 -0
- package/dist/server/core/generated-ui-tool.js.map +1 -0
- package/dist/server/core/index.d.ts +49 -8
- package/dist/server/core/index.js +198 -16
- package/dist/server/core/index.js.map +1 -1
- package/dist/server/core/local-guardrails.d.ts +6 -0
- package/dist/server/core/local-guardrails.js +68 -0
- package/dist/server/core/local-guardrails.js.map +1 -0
- package/dist/server/core/module-router.d.ts +3 -1
- package/dist/server/core/module-router.js +22 -2
- package/dist/server/core/module-router.js.map +1 -1
- package/dist/server/core/plan-tool.d.ts +23 -0
- package/dist/server/core/plan-tool.js +32 -0
- package/dist/server/core/plan-tool.js.map +1 -0
- package/dist/server/core/zod-compact.d.ts +2 -2
- package/dist/server/core/zod-compact.js +56 -7
- package/dist/server/core/zod-compact.js.map +1 -1
- package/dist/server/index.d.ts +2 -4
- package/dist/server/index.js +2 -4
- package/dist/server/index.js.map +1 -1
- package/dist/server/lancer/client.js +2 -1
- package/dist/server/lancer/client.js.map +1 -1
- package/dist/server/local-pipeline.d.ts +14 -0
- package/dist/server/local-pipeline.js +152 -0
- package/dist/server/local-pipeline.js.map +1 -0
- package/dist/server/pii-shield/index.d.ts +1 -0
- package/dist/server/pii-shield/index.js +1 -0
- package/dist/server/pii-shield/index.js.map +1 -1
- package/dist/server/pii-shield/regex-detector.d.ts +13 -0
- package/dist/server/pii-shield/regex-detector.js +109 -0
- package/dist/server/pii-shield/regex-detector.js.map +1 -0
- package/dist/server/testing/guardrails.js +1 -65
- package/dist/server/testing/guardrails.js.map +1 -1
- package/dist/server/testing/helpers.js +1 -62
- package/dist/server/testing/helpers.js.map +1 -1
- package/dist/server/testing/index.d.ts +1 -0
- package/dist/server/testing/index.js +1 -0
- package/dist/server/testing/index.js.map +1 -1
- package/dist/server/testing/registry-parity.d.ts +18 -0
- package/dist/server/testing/registry-parity.js +38 -0
- package/dist/server/testing/registry-parity.js.map +1 -0
- package/dist/server/testing/smoke.d.ts +2 -1
- package/dist/server/testing/smoke.js +5 -3
- package/dist/server/testing/smoke.js.map +1 -1
- package/dist/server/testing/types.d.ts +1 -1
- package/dist/server/testing/zod-introspect.d.ts +1 -1
- package/dist/server/testing/zod-introspect.js +178 -5
- package/dist/server/testing/zod-introspect.js.map +1 -1
- package/dist/stt/index.d.ts +5 -0
- package/dist/stt/index.js +6 -0
- package/dist/stt/index.js.map +1 -0
- package/dist/sync/app-setup-client.d.ts +46 -0
- package/dist/sync/app-setup-client.js +137 -0
- package/dist/sync/app-setup-client.js.map +1 -0
- package/dist/sync/capability-report.d.ts +41 -0
- package/dist/sync/capability-report.js +48 -0
- package/dist/sync/capability-report.js.map +1 -0
- package/dist/sync/connection-lookup.d.ts +19 -0
- package/dist/sync/connection-lookup.js +56 -0
- package/dist/sync/connection-lookup.js.map +1 -0
- package/dist/sync/control-plane-client.d.ts +69 -0
- package/dist/sync/control-plane-client.js +182 -0
- package/dist/sync/control-plane-client.js.map +1 -0
- package/dist/sync/deployment-selector.d.ts +9 -0
- package/dist/sync/deployment-selector.js +26 -0
- package/dist/sync/deployment-selector.js.map +1 -0
- package/dist/sync/fetch-sse-push.d.ts +6 -0
- package/dist/sync/fetch-sse-push.js +42 -0
- package/dist/sync/fetch-sse-push.js.map +1 -0
- package/dist/sync/index.d.ts +26 -0
- package/dist/sync/index.js +17 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/jwks-provider.d.ts +14 -0
- package/dist/sync/jwks-provider.js +53 -0
- package/dist/sync/jwks-provider.js.map +1 -0
- package/dist/sync/local-deployment-validator.d.ts +30 -0
- package/dist/sync/local-deployment-validator.js +60 -0
- package/dist/sync/local-deployment-validator.js.map +1 -0
- package/dist/sync/managed-sync.d.ts +40 -0
- package/dist/sync/managed-sync.js +94 -0
- package/dist/sync/managed-sync.js.map +1 -0
- package/dist/sync/materialize-deployment.d.ts +7 -0
- package/dist/sync/materialize-deployment.js +63 -0
- package/dist/sync/materialize-deployment.js.map +1 -0
- package/dist/sync/runtime-connect-client.d.ts +23 -0
- package/dist/sync/runtime-connect-client.js +182 -0
- package/dist/sync/runtime-connect-client.js.map +1 -0
- package/dist/sync/runtime-setup-client.d.ts +62 -0
- package/dist/sync/runtime-setup-client.js +153 -0
- package/dist/sync/runtime-setup-client.js.map +1 -0
- package/dist/sync/signature-verifier.d.ts +39 -0
- package/dist/sync/signature-verifier.js +97 -0
- package/dist/sync/signature-verifier.js.map +1 -0
- package/dist/sync/state-store.d.ts +24 -0
- package/dist/sync/state-store.js +47 -0
- package/dist/sync/state-store.js.map +1 -0
- package/dist/sync/sync-manager.d.ts +27 -0
- package/dist/sync/sync-manager.js +170 -0
- package/dist/sync/sync-manager.js.map +1 -0
- package/dist/types.d.ts +68 -16
- package/dist/types.js +30 -2
- package/dist/types.js.map +1 -1
- package/embed/package.json +5 -0
- package/package.json +187 -46
- package/runtime/ai-sdk/package.json +5 -0
- package/runtime/package.json +5 -0
- package/skills/README.md +26 -92
- package/skills/building-glirastes-chat-ui/SKILL.md +358 -343
- package/skills/describing-glirastes-tools/SKILL.md +180 -0
- package/skills/integrating-glirastes-nextjs/SKILL.md +142 -302
- package/skills/integrating-glirastes-web/SKILL.md +165 -0
- package/skills/maintaining-glirastes-tools/SKILL.md +133 -461
- package/skills/migrating-to-glirastes/SKILL.md +112 -0
- package/skills/setting-up-glirastes/SKILL.md +194 -0
- package/skills/setting-up-glirastes/agents/openai.yaml +4 -0
- package/skills/setting-up-glirastes/references/artifact-contract.md +40 -0
- package/skills/setting-up-glirastes/scripts/validate-artifact.ts +23 -0
- package/skills/setting-up-glirastes/templates/interview.md +19 -0
- package/stt/package.json +5 -0
- package/dist/cjs/codegen/asset-sync.d.ts +0 -20
- package/dist/cjs/codegen/asset-sync.js +0 -28
- package/dist/cjs/codegen/coverage.d.ts +0 -66
- package/dist/cjs/codegen/coverage.js +0 -408
- package/dist/cjs/codegen/endpoint-scanner.d.ts +0 -16
- package/dist/cjs/codegen/endpoint-scanner.js +0 -197
- package/dist/cjs/codegen/mcp-generator.d.ts +0 -50
- package/dist/cjs/codegen/mcp-generator.js +0 -803
- package/dist/cjs/codegen/module-generator.d.ts +0 -11
- package/dist/cjs/codegen/module-generator.js +0 -353
- package/dist/cjs/codegen/nestjs-scanner.d.ts +0 -43
- package/dist/cjs/codegen/nestjs-scanner.js +0 -241
- package/dist/cjs/codegen/output-recommender.d.ts +0 -23
- package/dist/cjs/codegen/output-recommender.js +0 -33
- package/dist/cjs/codegen/scaffolder.d.ts +0 -36
- package/dist/cjs/codegen/scaffolder.js +0 -262
- package/dist/cjs/codegen/skill-generator.d.ts +0 -49
- package/dist/cjs/codegen/skill-generator.js +0 -967
- package/dist/cjs/codegen/ui-scanner.d.ts +0 -24
- package/dist/cjs/codegen/ui-scanner.js +0 -202
- package/dist/cjs/codegen/validator.d.ts +0 -35
- package/dist/cjs/codegen/validator.js +0 -292
- package/dist/cjs/openapi/index.d.ts +0 -78
- package/dist/cjs/openapi/index.js +0 -347
- package/dist/cjs/react/components/wavesurfer-loader.d.ts +0 -5
- package/dist/cjs/react/components/wavesurfer-loader.js +0 -36
- package/dist/cjs/react/transports/langgraph/index.d.ts +0 -2
- package/dist/cjs/react/transports/langgraph/index.js +0 -8
- package/dist/cjs/react/transports/langgraph/langgraph-ai-chat.d.ts +0 -62
- package/dist/cjs/react/transports/langgraph/langgraph-ai-chat.js +0 -94
- package/dist/cjs/react/transports/langgraph.d.ts +0 -71
- package/dist/cjs/react/transports/langgraph.js +0 -369
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat-auth.guard.d.ts +0 -10
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat-auth.guard.js +0 -42
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat-module-options.interface.d.ts +0 -32
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat-module-options.interface.js +0 -4
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat.controller.d.ts +0 -11
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat.controller.js +0 -80
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat.module.d.ts +0 -9
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat.module.js +0 -119
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat.service.d.ts +0 -13
- package/dist/cjs/server/adapters/nestjs/chat/ai-chat.service.js +0 -131
- package/dist/cjs/server/adapters/nestjs/chat/dto/ai-chat-request.dto.d.ts +0 -7
- package/dist/cjs/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js +0 -52
- package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message-part.dto.d.ts +0 -19
- package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message-part.dto.js +0 -108
- package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message.dto.d.ts +0 -8
- package/dist/cjs/server/adapters/nestjs/chat/dto/chat-message.dto.js +0 -59
- package/dist/cjs/server/adapters/nestjs/chat/dto/index.d.ts +0 -3
- package/dist/cjs/server/adapters/nestjs/chat/dto/index.js +0 -9
- package/dist/cjs/server/adapters/nestjs/chat/index.d.ts +0 -3
- package/dist/cjs/server/adapters/nestjs/chat/index.js +0 -9
- package/dist/cjs/server/adapters/nestjs/chat/speech-stream.gateway.d.ts +0 -4
- package/dist/cjs/server/adapters/nestjs/chat/speech-stream.gateway.js +0 -73
- package/dist/cjs/server/adapters/nestjs/chat/ws-loader.d.ts +0 -5
- package/dist/cjs/server/adapters/nestjs/chat/ws-loader.js +0 -72
- package/dist/cjs/server/adapters/nestjs/decorators/ai-module.decorator.d.ts +0 -6
- package/dist/cjs/server/adapters/nestjs/decorators/ai-module.decorator.js +0 -13
- package/dist/cjs/server/adapters/nestjs/decorators/ai-param.decorator.d.ts +0 -5
- package/dist/cjs/server/adapters/nestjs/decorators/ai-param.decorator.js +0 -15
- package/dist/cjs/server/adapters/nestjs/decorators/ai-tool.decorator.d.ts +0 -6
- package/dist/cjs/server/adapters/nestjs/decorators/ai-tool.decorator.js +0 -22
- package/dist/cjs/server/adapters/nestjs/decorators/constants.d.ts +0 -4
- package/dist/cjs/server/adapters/nestjs/decorators/constants.js +0 -7
- package/dist/cjs/server/adapters/nestjs/index.d.ts +0 -14
- package/dist/cjs/server/adapters/nestjs/index.js +0 -42
- package/dist/cjs/server/adapters/nestjs/metadata.d.ts +0 -39
- package/dist/cjs/server/adapters/nestjs/metadata.js +0 -36
- package/dist/cjs/server/adapters/nestjs/module/ai-tools-explorer.service.d.ts +0 -36
- package/dist/cjs/server/adapters/nestjs/module/ai-tools-explorer.service.js +0 -159
- package/dist/cjs/server/adapters/nestjs/module/ai-tools.module.d.ts +0 -37
- package/dist/cjs/server/adapters/nestjs/module/ai-tools.module.js +0 -44
- package/dist/cjs/server/adapters/nestjs/module/ai-tools.service.d.ts +0 -28
- package/dist/cjs/server/adapters/nestjs/module/ai-tools.service.js +0 -41
- package/dist/cjs/server/adapters/nestjs/scanner/nestjs-scanner.d.ts +0 -16
- package/dist/cjs/server/adapters/nestjs/scanner/nestjs-scanner.js +0 -117
- package/dist/cjs/server/adapters/nestjs/scanner/schema-builder.d.ts +0 -26
- package/dist/cjs/server/adapters/nestjs/scanner/schema-builder.js +0 -259
- package/dist/cjs/server/adapters/nestjs/swagger.d.ts +0 -7
- package/dist/cjs/server/adapters/nestjs/swagger.js +0 -39
- package/dist/cli/commands/check-upgrade.d.ts +0 -15
- package/dist/cli/commands/check-upgrade.js +0 -138
- package/dist/cli/commands/check-upgrade.js.map +0 -1
- package/dist/cli/commands/test.d.ts +0 -8
- package/dist/cli/commands/test.js +0 -76
- package/dist/cli/commands/test.js.map +0 -1
- package/dist/cli/utils/changelog-parser.d.ts +0 -13
- package/dist/cli/utils/changelog-parser.js +0 -89
- package/dist/cli/utils/changelog-parser.js.map +0 -1
- package/dist/cli/utils/commit-parser.d.ts +0 -8
- package/dist/cli/utils/commit-parser.js +0 -23
- package/dist/cli/utils/commit-parser.js.map +0 -1
- package/dist/cli/utils/gap-detector.d.ts +0 -14
- package/dist/cli/utils/gap-detector.js +0 -65
- package/dist/cli/utils/gap-detector.js.map +0 -1
- package/dist/cli/utils/get-cli-version.d.ts +0 -2
- package/dist/cli/utils/get-cli-version.js +0 -10
- package/dist/cli/utils/get-cli-version.js.map +0 -1
- package/dist/codegen/asset-sync.d.ts +0 -20
- package/dist/codegen/asset-sync.js +0 -26
- package/dist/codegen/asset-sync.js.map +0 -1
- package/dist/codegen/coverage.d.ts +0 -66
- package/dist/codegen/coverage.js +0 -372
- package/dist/codegen/coverage.js.map +0 -1
- package/dist/codegen/endpoint-scanner.d.ts +0 -16
- package/dist/codegen/endpoint-scanner.js +0 -161
- package/dist/codegen/endpoint-scanner.js.map +0 -1
- package/dist/codegen/mcp-generator.d.ts +0 -50
- package/dist/codegen/mcp-generator.js +0 -801
- package/dist/codegen/mcp-generator.js.map +0 -1
- package/dist/codegen/module-generator.d.ts +0 -11
- package/dist/codegen/module-generator.js +0 -351
- package/dist/codegen/module-generator.js.map +0 -1
- package/dist/codegen/nestjs-scanner.d.ts +0 -43
- package/dist/codegen/nestjs-scanner.js +0 -239
- package/dist/codegen/nestjs-scanner.js.map +0 -1
- package/dist/codegen/output-recommender.d.ts +0 -23
- package/dist/codegen/output-recommender.js +0 -31
- package/dist/codegen/output-recommender.js.map +0 -1
- package/dist/codegen/scaffolder.d.ts +0 -36
- package/dist/codegen/scaffolder.js +0 -259
- package/dist/codegen/scaffolder.js.map +0 -1
- package/dist/codegen/skill-generator.d.ts +0 -49
- package/dist/codegen/skill-generator.js +0 -965
- package/dist/codegen/skill-generator.js.map +0 -1
- package/dist/codegen/ui-scanner.d.ts +0 -24
- package/dist/codegen/ui-scanner.js +0 -197
- package/dist/codegen/ui-scanner.js.map +0 -1
- package/dist/codegen/validator.d.ts +0 -35
- package/dist/codegen/validator.js +0 -256
- package/dist/codegen/validator.js.map +0 -1
- package/dist/openapi/demo-generate.d.ts +0 -1
- package/dist/openapi/demo-generate.js +0 -15
- package/dist/openapi/demo-generate.js.map +0 -1
- package/dist/openapi/index.d.ts +0 -78
- package/dist/openapi/index.js +0 -341
- package/dist/openapi/index.js.map +0 -1
- package/dist/react/components/wavesurfer-loader.d.ts +0 -5
- package/dist/react/components/wavesurfer-loader.js +0 -34
- package/dist/react/components/wavesurfer-loader.js.map +0 -1
- package/dist/react/transports/langgraph/index.d.ts +0 -2
- package/dist/react/transports/langgraph/index.js +0 -3
- package/dist/react/transports/langgraph/index.js.map +0 -1
- package/dist/react/transports/langgraph/langgraph-ai-chat.d.ts +0 -62
- package/dist/react/transports/langgraph/langgraph-ai-chat.js +0 -92
- package/dist/react/transports/langgraph/langgraph-ai-chat.js.map +0 -1
- package/dist/react/transports/langgraph.d.ts +0 -71
- package/dist/react/transports/langgraph.js +0 -366
- package/dist/react/transports/langgraph.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.d.ts +0 -10
- package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.js +0 -40
- package/dist/server/adapters/nestjs/chat/ai-chat-auth.guard.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.d.ts +0 -32
- package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.js +0 -2
- package/dist/server/adapters/nestjs/chat/ai-chat-module-options.interface.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/ai-chat.controller.d.ts +0 -11
- package/dist/server/adapters/nestjs/chat/ai-chat.controller.js +0 -78
- package/dist/server/adapters/nestjs/chat/ai-chat.controller.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/ai-chat.module.d.ts +0 -9
- package/dist/server/adapters/nestjs/chat/ai-chat.module.js +0 -117
- package/dist/server/adapters/nestjs/chat/ai-chat.module.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/ai-chat.service.d.ts +0 -13
- package/dist/server/adapters/nestjs/chat/ai-chat.service.js +0 -129
- package/dist/server/adapters/nestjs/chat/ai-chat.service.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.d.ts +0 -7
- package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js +0 -49
- package/dist/server/adapters/nestjs/chat/dto/ai-chat-request.dto.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.d.ts +0 -19
- package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.js +0 -105
- package/dist/server/adapters/nestjs/chat/dto/chat-message-part.dto.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.d.ts +0 -8
- package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.js +0 -56
- package/dist/server/adapters/nestjs/chat/dto/chat-message.dto.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/dto/index.d.ts +0 -3
- package/dist/server/adapters/nestjs/chat/dto/index.js +0 -4
- package/dist/server/adapters/nestjs/chat/dto/index.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/index.d.ts +0 -3
- package/dist/server/adapters/nestjs/chat/index.js +0 -3
- package/dist/server/adapters/nestjs/chat/index.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/speech-stream.gateway.d.ts +0 -4
- package/dist/server/adapters/nestjs/chat/speech-stream.gateway.js +0 -71
- package/dist/server/adapters/nestjs/chat/speech-stream.gateway.js.map +0 -1
- package/dist/server/adapters/nestjs/chat/ws-loader.d.ts +0 -5
- package/dist/server/adapters/nestjs/chat/ws-loader.js +0 -37
- package/dist/server/adapters/nestjs/chat/ws-loader.js.map +0 -1
- package/dist/server/adapters/nestjs/decorators/ai-module.decorator.d.ts +0 -6
- package/dist/server/adapters/nestjs/decorators/ai-module.decorator.js +0 -11
- package/dist/server/adapters/nestjs/decorators/ai-module.decorator.js.map +0 -1
- package/dist/server/adapters/nestjs/decorators/ai-param.decorator.d.ts +0 -5
- package/dist/server/adapters/nestjs/decorators/ai-param.decorator.js +0 -13
- package/dist/server/adapters/nestjs/decorators/ai-param.decorator.js.map +0 -1
- package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.d.ts +0 -6
- package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.js +0 -20
- package/dist/server/adapters/nestjs/decorators/ai-tool.decorator.js.map +0 -1
- package/dist/server/adapters/nestjs/decorators/constants.d.ts +0 -4
- package/dist/server/adapters/nestjs/decorators/constants.js +0 -5
- package/dist/server/adapters/nestjs/decorators/constants.js.map +0 -1
- package/dist/server/adapters/nestjs/index.d.ts +0 -14
- package/dist/server/adapters/nestjs/index.js +0 -20
- package/dist/server/adapters/nestjs/index.js.map +0 -1
- package/dist/server/adapters/nestjs/metadata.d.ts +0 -39
- package/dist/server/adapters/nestjs/metadata.js +0 -30
- package/dist/server/adapters/nestjs/metadata.js.map +0 -1
- package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.d.ts +0 -36
- package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.js +0 -156
- package/dist/server/adapters/nestjs/module/ai-tools-explorer.service.js.map +0 -1
- package/dist/server/adapters/nestjs/module/ai-tools.module.d.ts +0 -37
- package/dist/server/adapters/nestjs/module/ai-tools.module.js +0 -42
- package/dist/server/adapters/nestjs/module/ai-tools.module.js.map +0 -1
- package/dist/server/adapters/nestjs/module/ai-tools.service.d.ts +0 -28
- package/dist/server/adapters/nestjs/module/ai-tools.service.js +0 -38
- package/dist/server/adapters/nestjs/module/ai-tools.service.js.map +0 -1
- package/dist/server/adapters/nestjs/scanner/nestjs-scanner.d.ts +0 -16
- package/dist/server/adapters/nestjs/scanner/nestjs-scanner.js +0 -115
- package/dist/server/adapters/nestjs/scanner/nestjs-scanner.js.map +0 -1
- package/dist/server/adapters/nestjs/scanner/schema-builder.d.ts +0 -26
- package/dist/server/adapters/nestjs/scanner/schema-builder.js +0 -255
- package/dist/server/adapters/nestjs/scanner/schema-builder.js.map +0 -1
- package/dist/server/adapters/nestjs/swagger.d.ts +0 -7
- package/dist/server/adapters/nestjs/swagger.js +0 -37
- package/dist/server/adapters/nestjs/swagger.js.map +0 -1
- package/openapi/package.json +0 -5
- package/react/langgraph/package.json +0 -5
- package/server/nestjs/package.json +0 -5
- package/skills/integrating-glirastes-nestjs/SKILL.md +0 -346
- package/skills/integrating-glirastes-nextjs-with-nestjs-backend/SKILL.md +0 -359
package/README.md
CHANGED
|
@@ -1,927 +1,363 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<
|
|
3
|
-
<img alt="Glirastes SDK" src=".github/hero.gif" width="100%">
|
|
4
|
-
</a>
|
|
2
|
+
<img src=".github/assets/logo.png" alt="Glirastes logo: an orange mycelium mark" width="120">
|
|
5
3
|
</p>
|
|
6
4
|
|
|
5
|
+
<h1 align="center">Glirastes</h1>
|
|
6
|
+
|
|
7
7
|
<p align="center">
|
|
8
|
-
<
|
|
9
|
-
<sub>Define tools once. Execute on the server. React on the client. All type-safe.</sub>
|
|
8
|
+
<em>The agentic framework that takes root in your product.</em>
|
|
10
9
|
</p>
|
|
11
10
|
|
|
12
11
|
<p align="center">
|
|
13
|
-
<a href="
|
|
14
|
-
<a href="
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
<a href="#scaling-up--required-codegen-workflow-for-nextjs"><strong>Scaling up</strong></a> ·
|
|
18
|
-
<a href="#cli"><strong>CLI</strong></a> ·
|
|
19
|
-
<a href="#agent-skills"><strong>Skills</strong></a>
|
|
12
|
+
<a href="https://www.npmjs.com/package/glirastes"><img src="https://img.shields.io/npm/v/glirastes?style=flat-square&color=f2a618" alt="npm version"></a>
|
|
13
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-f2a618?style=flat-square" alt="License: Apache-2.0"></a>
|
|
14
|
+
<img src="https://img.shields.io/badge/node-%E2%89%A5%2020.6-f2a618?style=flat-square" alt="Node >= 20.6">
|
|
15
|
+
<img src="https://img.shields.io/badge/TypeScript-ready-f2a618?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
|
|
20
16
|
</p>
|
|
21
17
|
|
|
22
18
|
<p align="center">
|
|
23
|
-
<a href="https://
|
|
24
|
-
<a href="#
|
|
25
|
-
<a href="
|
|
26
|
-
<a href="
|
|
19
|
+
<a href="https://glirastes.io"><b>Website</b></a> ·
|
|
20
|
+
<a href="#quickstart-nextjs-app-router"><b>Quickstart</b></a> ·
|
|
21
|
+
<a href="docs/"><b>Docs</b></a> ·
|
|
22
|
+
<a href="skills/"><b>Skills</b></a> ·
|
|
23
|
+
<a href="CHANGELOG.md"><b>Changelog</b></a>
|
|
27
24
|
</p>
|
|
28
25
|
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<br/>
|
|
34
|
-
|
|
35
|
-
## What is this?
|
|
36
|
-
|
|
37
|
-
**glirastes** is a TypeScript SDK for building AI-powered chat and tool systems. You describe what the AI can do with a handful of declarative tool definitions, and the SDK turns them into [Vercel AI SDK](https://sdk.vercel.ai/)-compatible tools that call your APIs, stream responses to the client, and trigger UI updates — all type-safe, all in one place. If your backend already runs [LangGraph](https://langchain-ai.github.io/langgraph/) instead, the same chat UI works against it via the LangGraph transport — no migration required.
|
|
38
|
-
|
|
39
|
-
It ships as a single npm package with subpath exports:
|
|
40
|
-
|
|
41
|
-
```ts
|
|
42
|
-
import { defineEndpointTool } from 'glirastes';
|
|
43
|
-
import { createAiChatHandler } from 'glirastes/server/nextjs';
|
|
44
|
-
import { VercelAiChat } from 'glirastes/react/vercel';
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
The server bits run in Node (Next.js App Router, NestJS, or any framework). The client bits are React. Everything else — PII protection, intent routing, guardrails, approvals — is optional and unlocked via the [Glirastes platform](https://chainmatics.de).
|
|
48
|
-
|
|
49
|
-
<br/>
|
|
50
|
-
|
|
51
|
-
## Why glirastes?
|
|
52
|
-
|
|
53
|
-
Building an AI feature means wiring together **tool definitions**, **API calls**, **streaming responses**, **UI reactions**, and — once real users hit it — **PII handling**, **approval flows**, **guardrails**, and **observability**. Every. Single. Time.
|
|
54
|
-
|
|
55
|
-
<table>
|
|
56
|
-
<tr>
|
|
57
|
-
<td width="50%">
|
|
58
|
-
|
|
59
|
-
**Without glirastes**
|
|
60
|
-
```
|
|
61
|
-
- Manual tool/function definitions
|
|
62
|
-
- Hand-wired UI action dispatch
|
|
63
|
-
- Custom PII redaction
|
|
64
|
-
- Framework-specific glue
|
|
65
|
-
- Bespoke approval flows
|
|
66
|
-
- DIY observability
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
</td>
|
|
70
|
-
<td width="50%">
|
|
71
|
-
|
|
72
|
-
**With glirastes**
|
|
73
|
-
```
|
|
74
|
-
✦ One declarative definition per tool
|
|
75
|
-
✦ Auto UI action dispatch
|
|
76
|
-
✦ Optional PII Shield
|
|
77
|
-
✦ Next.js / NestJS / LangGraph adapters
|
|
78
|
-
✦ Pro approval flows via platform
|
|
79
|
-
✦ Built-in telemetry
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
</td>
|
|
83
|
-
</tr>
|
|
84
|
-
</table>
|
|
85
|
-
|
|
86
|
-
<br/>
|
|
87
|
-
|
|
88
|
-
## Quick Start ([Next.js](https://nextjs.org/) or [NestJS](https://nestjs.com/))
|
|
89
|
-
|
|
90
|
-
### Which adapter should I use?
|
|
91
|
-
|
|
92
|
-
If you only have one server, the answer is "that one". If you have **both** a Next.js frontend *and* a separate backend (NestJS, Express, …), put the chat route on the **backend**:
|
|
26
|
+
<p align="center">
|
|
27
|
+
<a href="https://glirastes.io"><img src=".github/assets/hero-landing.gif" width="100%" alt="The glirastes.io hero: an orange mycelium network pulses behind the headline "The agentic framework that takes root in your product." and the npm install glirastes command."></a>
|
|
28
|
+
</p>
|
|
93
29
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
| Express backend + any frontend | `glirastes/server` (manual wiring) |
|
|
30
|
+
Glirastes is a TypeScript SDK for an embedded chat that operates your app: it
|
|
31
|
+
calls your endpoints, navigates, sets filters and triggers UI actions. The tools
|
|
32
|
+
come from your code, everything runs inside your app, and the optional Glirastes
|
|
33
|
+
Platform manages reviewed configuration and rollouts without ever seeing prompts
|
|
34
|
+
or business data.
|
|
100
35
|
|
|
101
|
-
|
|
36
|
+
## See it in action
|
|
102
37
|
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
|
|
106
|
-
- **Tools can call services directly.** No HTTP membrane between the AI tool and your business logic.
|
|
107
|
-
- **One observability pipeline.** Logs, traces, rate limits where they already live.
|
|
38
|
+
<p align="center">
|
|
39
|
+
<img src=".github/assets/chat-demo.gif" width="100%" alt="A task board app with the Glirastes chat docked on the right. The user asks to move the Q4 report to Finance and assign it to Lena; the assistant looks up the task and the person, asks for approval of tasks.update, and after Approve the card moves to the Finance column with Lena as assignee.">
|
|
40
|
+
</p>
|
|
108
41
|
|
|
109
|
-
|
|
42
|
+
<p align="center"><sub>One request moves a card on a task board: the chat finds the task and the person, asks for approval of <code>tasks.update</code>, then acts.</sub></p>
|
|
110
43
|
|
|
111
|
-
|
|
44
|
+
## Quickstart (Next.js App Router)
|
|
112
45
|
|
|
113
|
-
###
|
|
46
|
+
### With a coding agent (recommended)
|
|
114
47
|
|
|
115
48
|
```bash
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
# Frontend / chat UI consumers — add the React UI peers
|
|
120
|
-
npm install glirastes @ai-sdk/react react-markdown
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
The Vercel AI SDK (`ai`) is bundled. `@ai-sdk/react` and `react-markdown` are declared as **optional peer dependencies** so backend-only consumers don't have a phantom React tree in their `node_modules`. Install them yourself when you use any `glirastes/react/*` subpath.
|
|
124
|
-
|
|
125
|
-
> **Requirements:** Node.js `>=20`. The React chat UI needs `react` and `react-dom` `^19` — Next.js apps already have these.
|
|
126
|
-
>
|
|
127
|
-
> **Optional** — only if you want voice input with a live waveform:
|
|
128
|
-
> ```bash
|
|
129
|
-
> npm install wavesurfer.js
|
|
130
|
-
> ```
|
|
131
|
-
|
|
132
|
-
### 2. Define a tool
|
|
133
|
-
|
|
134
|
-
The SDK uses the declared `method` + `path` (or the route the decorator already exposes) to call your own API when the LLM picks this tool — you never write a `fetch` yourself.
|
|
135
|
-
|
|
136
|
-
<table>
|
|
137
|
-
<tr>
|
|
138
|
-
<th>Next.js — co-located <code>ai-tool.ts</code></th>
|
|
139
|
-
<th>NestJS — decorators on your controller</th>
|
|
140
|
-
</tr>
|
|
141
|
-
<tr>
|
|
142
|
-
<td valign="top">
|
|
143
|
-
|
|
144
|
-
```ts
|
|
145
|
-
// app/api/tasks/ai-tool.ts
|
|
146
|
-
import { z } from 'zod';
|
|
147
|
-
import { defineEndpointTool } from 'glirastes';
|
|
148
|
-
|
|
149
|
-
export const listTasks = defineEndpointTool({
|
|
150
|
-
id: 'tasks.list',
|
|
151
|
-
toolName: 'list_tasks',
|
|
152
|
-
description: 'List tasks with an optional status filter.',
|
|
153
|
-
method: 'GET',
|
|
154
|
-
path: '/api/tasks',
|
|
155
|
-
inputSchema: z.object({
|
|
156
|
-
status: z.enum(['open', 'done']).optional(),
|
|
157
|
-
}),
|
|
158
|
-
});
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
</td>
|
|
162
|
-
<td valign="top">
|
|
163
|
-
|
|
164
|
-
```ts
|
|
165
|
-
// tasks.controller.ts
|
|
166
|
-
import { Controller, Get, Query } from '@nestjs/common';
|
|
167
|
-
import { AiModule, AiTool } from 'glirastes/server/nestjs';
|
|
168
|
-
|
|
169
|
-
@Controller('tasks')
|
|
170
|
-
@AiModule({
|
|
171
|
-
intent: 'task_management',
|
|
172
|
-
classification: {
|
|
173
|
-
hint: 'User asks about listing or filtering tasks.',
|
|
174
|
-
examples: ['show me open tasks', 'what is done?', 'list my tasks'],
|
|
175
|
-
},
|
|
176
|
-
})
|
|
177
|
-
export class TaskController {
|
|
178
|
-
@Get()
|
|
179
|
-
@AiTool({
|
|
180
|
-
name: 'list_tasks',
|
|
181
|
-
description: 'List tasks with an optional status filter.',
|
|
182
|
-
})
|
|
183
|
-
list(@Query('status') status?: 'open' | 'done') {
|
|
184
|
-
return this.taskService.list(status);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
49
|
+
npm install glirastes @ai-sdk/openai @ai-sdk/react react-markdown
|
|
50
|
+
npx --no-install glirastes init
|
|
187
51
|
```
|
|
188
52
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
### 3. Drop a chat widget into your frontend
|
|
194
|
-
|
|
195
|
-
```tsx
|
|
196
|
-
'use client';
|
|
197
|
-
import { VercelAiChat } from 'glirastes/react/vercel';
|
|
53
|
+
Run `init` inside Claude Code or Codex (Node >= 20.6). Your agent then derives
|
|
54
|
+
the tools from your routes, adds the chat route and the chat UI, and asks once
|
|
55
|
+
whether the app runs Standalone or with the Platform. Existing files are never
|
|
56
|
+
replaced; `--dry-run --json` previews without writing anything.
|
|
198
57
|
|
|
199
|
-
|
|
200
|
-
return (
|
|
201
|
-
<body>
|
|
202
|
-
{children}
|
|
203
|
-
<VercelAiChat endpoint="/api/chat" />
|
|
204
|
-
</body>
|
|
205
|
-
);
|
|
206
|
-
}
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### 4. Wire up the chat handler
|
|
210
|
-
|
|
211
|
-
<table>
|
|
212
|
-
<tr>
|
|
213
|
-
<th>Next.js — <code>app/api/chat/route.ts</code></th>
|
|
214
|
-
<th>NestJS — register controllers in <code>AiChatModule</code></th>
|
|
215
|
-
</tr>
|
|
216
|
-
<tr>
|
|
217
|
-
<td valign="top">
|
|
218
|
-
|
|
219
|
-
```ts
|
|
220
|
-
import { createAiChatHandler } from 'glirastes/server/nextjs';
|
|
221
|
-
import { endpointToolsToRegistry } from 'glirastes/server';
|
|
222
|
-
import { listTasks } from './tasks/ai-tool';
|
|
223
|
-
|
|
224
|
-
export const POST = createAiChatHandler({
|
|
225
|
-
tools: endpointToolsToRegistry([listTasks]),
|
|
226
|
-
});
|
|
227
|
-
```
|
|
58
|
+
### By hand
|
|
228
59
|
|
|
229
|
-
|
|
230
|
-
<td valign="top">
|
|
60
|
+
**1. Install** the SDK and the chat peers (Node >= 20.6):
|
|
231
61
|
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
import { endpointToolsToRegistry } from 'glirastes/server';
|
|
235
|
-
import { TaskController } from './tasks/tasks.controller';
|
|
236
|
-
|
|
237
|
-
const scan = scanNestJsControllers({ controllers: [TaskController] });
|
|
238
|
-
const registry = endpointToolsToRegistry(scan.tools);
|
|
239
|
-
|
|
240
|
-
// Pass `registry` to createAiChatHandler in your chat route.
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
</td>
|
|
244
|
-
</tr>
|
|
245
|
-
</table>
|
|
246
|
-
|
|
247
|
-
Done. AI chat is live, streaming, and your `list_tasks` tool is callable. Add more tools the same way — pick the style that matches your stack. See [NestJS with decorators](#nestjs-with-decorators) below for DTOs, `@AiParam`, and multi-controller scanning.
|
|
248
|
-
|
|
249
|
-
> **One more step for Next.js once you have more than a handful of tools.** The manual `endpointToolsToRegistry([listTasks, …])` import list above stops scaling around 5–10 tools. Today's required pattern: write each tool in a co-located `*.ai-tool.ts` file and run the CLI codegen as a `predev` / `prebuild` hook to aggregate them into a generated registry your chat route imports. See [Scaling up — required codegen workflow for Next.js](#scaling-up--required-codegen-workflow-for-nextjs) below for the full setup. **NestJS users skip this entirely** — the runtime decorator scan handles aggregation automatically.
|
|
250
|
-
>
|
|
251
|
-
> *Coming in 0.4.0:* a `buildToolRegistry` helper backed by `import.meta.glob` / `require.context` that drops the codegen step for Next.js too. Track at [chainmatics/glirastes#issues](https://github.com/chainmatics/glirastes/issues).
|
|
252
|
-
|
|
253
|
-
### Setup notes
|
|
254
|
-
|
|
255
|
-
#### tsconfig — modern is best, legacy still works
|
|
256
|
-
|
|
257
|
-
Glirastes ships **both** ESM (`dist/`) and CommonJS (`dist/cjs/`) with a conditional `exports` map, plus subpath shim directories at the package root for legacy resolvers. Both setups below are supported:
|
|
258
|
-
|
|
259
|
-
**Modern (recommended):**
|
|
260
|
-
|
|
261
|
-
```jsonc
|
|
262
|
-
{
|
|
263
|
-
"compilerOptions": {
|
|
264
|
-
"module": "node16", // or "nodenext" / "esnext"
|
|
265
|
-
"moduleResolution": "node16", // or "nodenext" / "bundler"
|
|
266
|
-
"target": "ES2022",
|
|
267
|
-
"esModuleInterop": true,
|
|
268
|
-
"experimentalDecorators": true, // NestJS only
|
|
269
|
-
"emitDecoratorMetadata": true // NestJS only
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
**Legacy NestJS template (default `module: commonjs`):** works as-is — no tsconfig changes required. The shim directories under `glirastes/server/`, `glirastes/react/` etc. let the classic Node resolver find each subpath, and the CommonJS build under `dist/cjs/` provides the runtime artifacts.
|
|
275
|
-
|
|
276
|
-
#### Which subpath do I import from?
|
|
277
|
-
|
|
278
|
-
| Where the code runs | Import from |
|
|
279
|
-
|---|---|
|
|
280
|
-
| Anywhere (tool definitions, types, helpers) | `glirastes` |
|
|
281
|
-
| Server-side core (registry helpers, pipeline) | `glirastes/server` |
|
|
282
|
-
| Next.js App Router route handlers | `glirastes/server/nextjs` |
|
|
283
|
-
| NestJS controllers / modules | `glirastes/server/nestjs` |
|
|
284
|
-
| Test suite without LLM calls | `glirastes/server/testing` |
|
|
285
|
-
| React components, client hooks | `glirastes/react` |
|
|
286
|
-
| Vercel AI SDK chat widget | `glirastes/react/vercel` |
|
|
287
|
-
| LangGraph chat widget | `glirastes/react/langgraph` |
|
|
288
|
-
| Default chat panel CSS | `glirastes/react/styles.css` |
|
|
289
|
-
|
|
290
|
-
<br/>
|
|
291
|
-
|
|
292
|
-
## Core Concepts
|
|
293
|
-
|
|
294
|
-
### Tool
|
|
295
|
-
|
|
296
|
-
A **tool** is something the AI can do. It has a name, a description (so the LLM knows when to use it), an input schema (Zod — validated at the type layer and at runtime), and logic for what happens when it runs.
|
|
297
|
-
|
|
298
|
-
Two flavors cover ~95% of real-world cases:
|
|
299
|
-
|
|
300
|
-
### Endpoint Tool — talks to your backend
|
|
301
|
-
|
|
302
|
-
```ts
|
|
303
|
-
import { z } from 'zod';
|
|
304
|
-
import { defineEndpointTool } from 'glirastes';
|
|
305
|
-
|
|
306
|
-
export const listInvoices = defineEndpointTool({
|
|
307
|
-
id: 'invoices.list',
|
|
308
|
-
toolName: 'list_invoices',
|
|
309
|
-
module: 'billing',
|
|
310
|
-
description: 'List invoices with optional status filter.',
|
|
311
|
-
method: 'GET',
|
|
312
|
-
path: '/api/invoices',
|
|
313
|
-
inputSchema: z.object({
|
|
314
|
-
status: z.enum(['paid', 'open', 'overdue']).optional(),
|
|
315
|
-
}),
|
|
316
|
-
uiPattern: {
|
|
317
|
-
type: 'filter-and-navigate',
|
|
318
|
-
target: 'invoices',
|
|
319
|
-
filterMapping: { status: 'status' },
|
|
320
|
-
},
|
|
321
|
-
});
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
You declare the HTTP method and path; the SDK generates the `execute` function that calls your API. You never write fetch boilerplate for a tool.
|
|
325
|
-
|
|
326
|
-
### UI Tool — fires frontend actions
|
|
327
|
-
|
|
328
|
-
```ts
|
|
329
|
-
import { z } from 'zod';
|
|
330
|
-
import { defineUiTool } from 'glirastes';
|
|
331
|
-
|
|
332
|
-
export const openSettings = defineUiTool({
|
|
333
|
-
id: 'settings.open',
|
|
334
|
-
toolName: 'open_settings',
|
|
335
|
-
description: 'Open the settings dialog for the current user.',
|
|
336
|
-
inputSchema: z.object({}),
|
|
337
|
-
uiAction: { type: 'open-dialog', target: 'settings' },
|
|
338
|
-
});
|
|
62
|
+
```bash
|
|
63
|
+
npm install glirastes @ai-sdk/openai @ai-sdk/react react-markdown
|
|
339
64
|
```
|
|
340
65
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
### Registry
|
|
344
|
-
|
|
345
|
-
A **registry** is a key-value map (tool name → tool object) that the SDK uses internally. Build one with `endpointToolsToRegistry(...)` or `uiToolsToRegistry(...)`:
|
|
66
|
+
**2. Initialize.** Run it inside your Codex or Claude Code session, or from a
|
|
67
|
+
terminal with `--agent codex|claude`:
|
|
346
68
|
|
|
347
|
-
```
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
const endpoints = endpointToolsToRegistry([listInvoices, createInvoice]);
|
|
351
|
-
const ui = uiToolsToRegistry([openSettings]);
|
|
352
|
-
const registry = { ...endpoints, ...ui };
|
|
69
|
+
```bash
|
|
70
|
+
npx --no-install glirastes init
|
|
353
71
|
```
|
|
354
72
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
Declarative rules for what the frontend should do after a tool runs. Instead of writing custom dispatch code per tool, declare a pattern and the SDK resolves it automatically:
|
|
360
|
-
|
|
361
|
-
| Pattern | What it does |
|
|
362
|
-
|---|---|
|
|
363
|
-
| `filter-and-navigate` | Navigate to a page with filters pre-applied |
|
|
364
|
-
| `open-detail` | Open a detail view for a specific entity |
|
|
365
|
-
| `open-dialog` | Open a modal dialog |
|
|
366
|
-
| `refresh` | Refresh a specific UI region |
|
|
367
|
-
| `toast` | Show a notification |
|
|
368
|
-
|
|
369
|
-
Patterns support `$variable` placeholders that get replaced with values from the tool input or response. Example: `path: '/tasks/$taskId'` becomes `/tasks/abc-123` at runtime.
|
|
370
|
-
|
|
371
|
-
### UI Action Dispatch
|
|
372
|
-
|
|
373
|
-
On the frontend, register handlers for action IDs using the `useAiClientAction` hook:
|
|
374
|
-
|
|
375
|
-
```tsx
|
|
376
|
-
import { useAiClientAction } from 'glirastes/react';
|
|
377
|
-
|
|
378
|
-
function TaskList() {
|
|
379
|
-
useAiClientAction('task-details.open', (payload) => {
|
|
380
|
-
router.push(`/tasks/${payload?.taskId}`);
|
|
381
|
-
});
|
|
73
|
+
`init` writes `.glirastes/tools.json`, `.glirastes/prompt-bundle.json`, the
|
|
74
|
+
`predev` / `prebuild` scripts (`glirastes tools refresh`) and a short hint in
|
|
75
|
+
`AGENTS.md` / `CLAUDE.md`, installs the [agent skills](#agent-skills) and hands
|
|
76
|
+
the integration to your coding agent. Existing files are never replaced.
|
|
382
77
|
|
|
383
|
-
|
|
384
|
-
setFilters(payload);
|
|
385
|
-
});
|
|
78
|
+
**3. Derive the tools** from your routes, pages, URL filters and client actions:
|
|
386
79
|
|
|
387
|
-
|
|
388
|
-
|
|
80
|
+
```bash
|
|
81
|
+
npx glirastes tools refresh
|
|
389
82
|
```
|
|
390
83
|
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
### Modules (Intent Routing)
|
|
394
|
-
|
|
395
|
-
Modules group tools by topic — e.g., a `billing` module contains `list_invoices`, `create_invoice`, `send_reminder`. When a user sends a message, the SDK can classify which module the message belongs to and scope the LLM's tool list to that module alone. Fewer tools = cheaper, faster, more accurate responses.
|
|
396
|
-
|
|
397
|
-
Module assignment is declared per-tool via the `module` field. Intent classification is a Pro feature that runs through the [Glirastes platform](https://chainmatics.de) via `Lancer` (see [Advanced](#advanced)).
|
|
398
|
-
|
|
399
|
-
<br/>
|
|
84
|
+
This writes the committed `.glirastes/` tool files and the generated module
|
|
85
|
+
`src/generated/glirastes/tools.generated.ts`.
|
|
400
86
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
### Full Next.js backend with the pipeline
|
|
404
|
-
|
|
405
|
-
The pipeline orchestrates guardrails → intent classification → tool scoping → model selection in one call. It's the recommended setup once you have more than a handful of tools.
|
|
87
|
+
**4. Add the chat route.** Identity comes from your verified session; your
|
|
88
|
+
endpoints keep their own authorization.
|
|
406
89
|
|
|
407
90
|
```ts
|
|
408
|
-
// app/api/chat/route.ts
|
|
91
|
+
// src/app/api/chat/route.ts
|
|
92
|
+
import { createOpenAI } from '@ai-sdk/openai';
|
|
93
|
+
import { createGlirastes } from 'glirastes/runtime';
|
|
409
94
|
import { createAiChatHandler } from 'glirastes/server/nextjs';
|
|
410
|
-
import
|
|
411
|
-
import {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
export const POST = createAiChatHandler({
|
|
428
|
-
tools: registry,
|
|
429
|
-
pipeline,
|
|
430
|
-
});
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
Without an API key, the pipeline **still works** — every Lancer call falls back to a safe local default. Guardrails pass, classification returns low confidence, telemetry is silently dropped. You can develop and ship without ever talking to the platform.
|
|
434
|
-
|
|
435
|
-
### NestJS with decorators
|
|
436
|
-
|
|
437
|
-
Prefer declaring tools where the endpoint lives? Use NestJS decorators. Three pieces: `@AiModule` on the controller, `@AiTool` on the method, `@AiParam` on the DTO properties.
|
|
438
|
-
|
|
439
|
-
```ts
|
|
440
|
-
// tasks.controller.ts
|
|
441
|
-
import { Controller, Post, Body, Get, Param } from '@nestjs/common';
|
|
442
|
-
import { AiModule, AiTool } from 'glirastes/server/nestjs';
|
|
443
|
-
|
|
444
|
-
@Controller('tasks')
|
|
445
|
-
@AiModule({
|
|
446
|
-
intent: 'task_management',
|
|
447
|
-
classification: {
|
|
448
|
-
hint: 'User wants to create, update, or query tasks.',
|
|
449
|
-
examples: ['create a task', 'mark task as done', 'list my tasks'],
|
|
450
|
-
},
|
|
451
|
-
})
|
|
452
|
-
export class TaskController {
|
|
453
|
-
@Post()
|
|
454
|
-
@AiTool({
|
|
455
|
-
name: 'create_task',
|
|
456
|
-
description: 'Create a new task',
|
|
457
|
-
})
|
|
458
|
-
async create(@Body() dto: CreateTaskDto) {
|
|
459
|
-
return this.taskService.create(dto);
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
// Endpoints without @AiTool are not exposed to the AI
|
|
463
|
-
@Get(':id/history')
|
|
464
|
-
getHistory(@Param('id') id: string) {
|
|
465
|
-
return this.taskService.getHistory(id);
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
```ts
|
|
471
|
-
// create-task.dto.ts
|
|
472
|
-
import { IsString, IsOptional } from 'class-validator';
|
|
473
|
-
import { AiParam } from 'glirastes/server/nestjs';
|
|
474
|
-
|
|
475
|
-
export class CreateTaskDto {
|
|
476
|
-
@IsString()
|
|
477
|
-
@AiParam('The task title. Required. Ask the user if missing.')
|
|
478
|
-
title!: string;
|
|
479
|
-
|
|
480
|
-
@IsString()
|
|
481
|
-
@IsOptional()
|
|
482
|
-
@AiParam('Optional due date in ISO 8601 format.')
|
|
483
|
-
dueDate?: string;
|
|
95
|
+
import * as generated from '@/generated/glirastes/tools.generated';
|
|
96
|
+
import { resolvePrincipal } from '@/lib/glirastes-principal'; // your session lookup
|
|
97
|
+
|
|
98
|
+
const glirastes = createGlirastes({ generated });
|
|
99
|
+
const openrouter = createOpenAI({ baseURL: 'https://openrouter.ai/api/v1', apiKey: process.env.OPENROUTER_API_KEY });
|
|
100
|
+
|
|
101
|
+
export const runtime = 'nodejs';
|
|
102
|
+
export async function POST(request: Request) {
|
|
103
|
+
const principal = await resolvePrincipal(request); // { subjectId, tenantId, roles, attributes }
|
|
104
|
+
if (!principal) return new Response('Unauthorized', { status: 401 });
|
|
105
|
+
const turn = await glirastes.chatTurn((runtimeTenantId) => ({ ...principal, tenantId: runtimeTenantId }));
|
|
106
|
+
return createAiChatHandler({
|
|
107
|
+
...turn,
|
|
108
|
+
model: openrouter.chat('anthropic/claude-sonnet-5.5'),
|
|
109
|
+
systemPrompt: 'Use the tools of this app. Ask one short question when the target is unclear.',
|
|
110
|
+
toolDiscovery: true,
|
|
111
|
+
})(request);
|
|
484
112
|
}
|
|
485
113
|
```
|
|
486
114
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
Wire it up in your `AiChatModule`:
|
|
490
|
-
|
|
491
|
-
```ts
|
|
492
|
-
import { scanNestJsControllers } from 'glirastes/server/nestjs';
|
|
493
|
-
import { endpointToolsToRegistry } from 'glirastes/server';
|
|
494
|
-
|
|
495
|
-
const scan = scanNestJsControllers({
|
|
496
|
-
controllers: [TaskController, /* ...other controllers */],
|
|
497
|
-
});
|
|
498
|
-
const registry = endpointToolsToRegistry(scan.tools);
|
|
499
|
-
```
|
|
115
|
+
Budgets default to safe values; pass `localLimits: { maxToolCalls: 4 }` to override single fields.
|
|
500
116
|
|
|
501
|
-
|
|
117
|
+
Before production set `GLIRASTES_APPROVAL_SECRET` (at least 16 characters, the
|
|
118
|
+
same on every instance): it signs each approval so a forged or edited chat
|
|
119
|
+
history runs nothing. Request limits, multi-instance setups and the rest are in
|
|
120
|
+
[docs/chat-route-security.md](docs/chat-route-security.md).
|
|
502
121
|
|
|
503
|
-
|
|
122
|
+
**5. Mount the chat** and the navigation bridge (client components):
|
|
504
123
|
|
|
505
124
|
```tsx
|
|
506
|
-
// components/chat-integration.tsx
|
|
507
125
|
'use client';
|
|
508
|
-
import { useAiClientAction } from 'glirastes/react';
|
|
509
126
|
import { useRouter } from 'next/navigation';
|
|
510
|
-
import {
|
|
127
|
+
import { useGlirastesNavigationBridge } from 'glirastes/react';
|
|
128
|
+
import { VercelAiChat } from 'glirastes/react/vercel';
|
|
129
|
+
import 'glirastes/react/styles.css';
|
|
511
130
|
|
|
512
|
-
export function
|
|
131
|
+
export function Assistant() {
|
|
513
132
|
const router = useRouter();
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
useAiClientAction('task-details.open', (payload) => {
|
|
517
|
-
router.push(`/tasks/${payload?.taskId}`);
|
|
518
|
-
});
|
|
519
|
-
|
|
520
|
-
useAiClientAction('task-list.refresh', () => {
|
|
521
|
-
qc.invalidateQueries({ queryKey: ['tasks'] });
|
|
522
|
-
});
|
|
523
|
-
|
|
524
|
-
useAiClientAction('open-dialog.settings', () => {
|
|
525
|
-
// open your settings modal
|
|
526
|
-
});
|
|
527
|
-
|
|
528
|
-
return null;
|
|
133
|
+
useGlirastesNavigationBridge({ push: (href) => router.push(href) });
|
|
134
|
+
return <VercelAiChat endpoint="/api/chat" />;
|
|
529
135
|
}
|
|
530
136
|
```
|
|
531
137
|
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
### OpenAPI code generation
|
|
535
|
-
|
|
536
|
-
Already have an OpenAPI spec? Annotate your endpoints with `x-ai` extensions:
|
|
537
|
-
|
|
538
|
-
```json
|
|
539
|
-
{
|
|
540
|
-
"paths": {
|
|
541
|
-
"/api/tasks": {
|
|
542
|
-
"post": {
|
|
543
|
-
"operationId": "createTask",
|
|
544
|
-
"x-ai": {
|
|
545
|
-
"enabled": true,
|
|
546
|
-
"toolName": "create_task",
|
|
547
|
-
"description": "Create a new task",
|
|
548
|
-
"module": "task_management"
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
```
|
|
555
|
-
|
|
556
|
-
Then generate tool definitions automatically:
|
|
557
|
-
|
|
558
|
-
```bash
|
|
559
|
-
npx glirastes generate --input openapi.json --output src/generated/tools.ts
|
|
560
|
-
```
|
|
561
|
-
|
|
562
|
-
The generator converts OpenAPI parameter schemas to Zod, preserves `x-ai` metadata, and outputs a ready-to-import registry file.
|
|
138
|
+
**6. Run** `npm run dev` (the `predev` script refreshes the tools), then check
|
|
139
|
+
the setup with `npx glirastes doctor`.
|
|
563
140
|
|
|
564
|
-
|
|
141
|
+
The full walkthrough, including filters, client actions, `@` mentions and `/`
|
|
142
|
+
commands, is the bundled skill
|
|
143
|
+
[`integrating-glirastes-nextjs`](skills/integrating-glirastes-nextjs/SKILL.md).
|
|
565
144
|
|
|
566
|
-
|
|
567
|
-
import { createAiTestSuite } from 'glirastes/server/testing';
|
|
568
|
-
import { endpointTools } from '@/lib/ai-tools';
|
|
569
|
-
import { modules } from '@/lib/modules';
|
|
570
|
-
|
|
571
|
-
const suite = createAiTestSuite({
|
|
572
|
-
tools: endpointTools,
|
|
573
|
-
modules,
|
|
574
|
-
});
|
|
575
|
-
|
|
576
|
-
suite.expectRouted('show me open tasks', 'task_query');
|
|
577
|
-
suite.expectNeedsApproval('delete_task');
|
|
578
|
-
suite.expectNoApproval('list_tasks');
|
|
579
|
-
suite.expectToolSchema('create_task').toAccept({ title: 'Buy milk' });
|
|
580
|
-
```
|
|
145
|
+
## How it works
|
|
581
146
|
|
|
582
|
-
|
|
147
|
+
- **Execution is local.** The model call, the tool loop and every tool call
|
|
148
|
+
run in your app's server. A normal chat turn makes no request to the
|
|
149
|
+
Platform.
|
|
150
|
+
- **Your app keeps the sensitive parts.** Prompts, model calls and provider
|
|
151
|
+
keys, secrets, business data, tool arguments and results, and final
|
|
152
|
+
authorization stay in the app. `resolvePrincipal` only says who asks; each
|
|
153
|
+
endpoint still checks its own session and permissions.
|
|
154
|
+
- **Guard rails per turn.** Each turn runs on one pinned tool and policy
|
|
155
|
+
snapshot, with local budgets (steps, tool calls, tokens, cost, timeouts),
|
|
156
|
+
loop detection and fail-closed authorization. Write and delete tools ask
|
|
157
|
+
the user before they run.
|
|
158
|
+
- **The Platform gets metadata only.** A connected app sends content-free
|
|
159
|
+
metrics (tokens, cost, latency, errors, tool use) in batches off the turn
|
|
160
|
+
path, and receives signed configuration revisions.
|
|
583
161
|
|
|
584
|
-
|
|
162
|
+
## Tools from your code
|
|
585
163
|
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
If your server already runs [LangGraph](https://langchain-ai.github.io/langgraph/), swap the drop-in widget for the LangGraph transport. Your LangGraph agent handles the model calls and tool execution; glirastes handles the chat UI and streaming transport:
|
|
591
|
-
|
|
592
|
-
```tsx
|
|
593
|
-
'use client';
|
|
594
|
-
import { LangGraphAiChat } from 'glirastes/react/langgraph';
|
|
595
|
-
|
|
596
|
-
export default function RootLayout({ children }) {
|
|
597
|
-
return (
|
|
598
|
-
<body>
|
|
599
|
-
{children}
|
|
600
|
-
<LangGraphAiChat endpoint="/api/chat" />
|
|
601
|
-
</body>
|
|
602
|
-
);
|
|
603
|
-
}
|
|
604
|
-
```
|
|
605
|
-
|
|
606
|
-
No `ai` / `@ai-sdk/react` imports needed — the LangGraph transport is pure HTTP and streams on its own.
|
|
607
|
-
|
|
608
|
-
### Customizing the chat UI
|
|
609
|
-
|
|
610
|
-
`VercelAiChat` and `LangGraphAiChat` are thin wrappers around `FloatingChatUI` and accept all its layout props directly:
|
|
611
|
-
|
|
612
|
-
```tsx
|
|
613
|
-
<VercelAiChat
|
|
614
|
-
endpoint="/api/chat"
|
|
615
|
-
title="Ask the assistant"
|
|
616
|
-
defaultOpen={false}
|
|
617
|
-
draggable={true}
|
|
618
|
-
resizable={true}
|
|
619
|
-
size={{ width: 480, height: 640 }}
|
|
620
|
-
shortcut="mod+k"
|
|
621
|
-
/>
|
|
622
|
-
```
|
|
623
|
-
|
|
624
|
-
| Prop | What it does |
|
|
625
|
-
|---|---|
|
|
626
|
-
| `title` | Header text. Default: `"AI Assistant"` |
|
|
627
|
-
| `defaultOpen` | Whether the window starts open. Default: `false` |
|
|
628
|
-
| `draggable` | Window draggable by its header. Default: `true` |
|
|
629
|
-
| `resizable` | Window resizable from corners. Default: `true` |
|
|
630
|
-
| `size` | `{ width, height }` or a responsive size config |
|
|
631
|
-
| `shortcut` | Keyboard shortcut to toggle, e.g. `'mod+k'`. Pass `false` to disable |
|
|
632
|
-
| `hideTriggerWhenOpen` | Hide the floating trigger pill while the window is open |
|
|
633
|
-
| `showClearButton` | Show the clear/trash button in the header. Default: `true` |
|
|
634
|
-
| `showSessionSwitcher` | `true`, `false`, or `'auto'` (shows if sessions are configured) |
|
|
635
|
-
| `headerActions` | Replace the default header actions with a custom `ReactNode` |
|
|
636
|
-
| `triggerIcon` | Custom icon inside the floating trigger pill |
|
|
637
|
-
|
|
638
|
-
### Styling
|
|
639
|
-
|
|
640
|
-
Every visual slot accepts a class name through the `classNames` prop. Works with Tailwind, CSS Modules, or any class-based styling:
|
|
641
|
-
|
|
642
|
-
```tsx
|
|
643
|
-
<VercelAiChat
|
|
644
|
-
endpoint="/api/chat"
|
|
645
|
-
classNames={{
|
|
646
|
-
window: 'w-[500px] h-[640px] bg-slate-900 border-slate-700 shadow-2xl',
|
|
647
|
-
windowHeader: 'bg-slate-800 text-slate-100',
|
|
648
|
-
messageBubble: 'rounded-xl',
|
|
649
|
-
input: 'bg-slate-800 text-slate-100',
|
|
650
|
-
trigger: 'bottom-8 right-8',
|
|
651
|
-
triggerPill: 'bg-indigo-600 hover:bg-indigo-500',
|
|
652
|
-
}}
|
|
653
|
-
/>
|
|
654
|
-
```
|
|
655
|
-
|
|
656
|
-
Available slots: `window`, `windowHeader`, `windowBody`, `panel`, `messageList`, `messageBubble`, `input`, `approvalCard`, `bulkApprovalCard`, `suggestionChip`, `mentionChip`, `pipelineTimeline`, `trigger`, `triggerPill`, `switcher`. Setting `classNames.window` drops the SDK's inline sizing styles so your classes win.
|
|
657
|
-
|
|
658
|
-
You can also bring your own stylesheet via `import 'glirastes/react/styles.css'` for the default look, or skip it entirely and style everything from scratch.
|
|
659
|
-
|
|
660
|
-
### Persisting chat across sessions
|
|
661
|
-
|
|
662
|
-
Every widget accepts a `session` config. The simplest version uses `localStorage`:
|
|
663
|
-
|
|
664
|
-
```tsx
|
|
665
|
-
<VercelAiChat
|
|
666
|
-
endpoint="/api/chat"
|
|
667
|
-
session={{
|
|
668
|
-
save: (id, msgs) => localStorage.setItem(id, JSON.stringify(msgs)),
|
|
669
|
-
load: (id) => {
|
|
670
|
-
const v = localStorage.getItem(id);
|
|
671
|
-
return v ? JSON.parse(v) : null;
|
|
672
|
-
},
|
|
673
|
-
}}
|
|
674
|
-
/>
|
|
675
|
-
```
|
|
676
|
-
|
|
677
|
-
For multi-device sync, point `save` and `load` at your own REST endpoints that persist messages to a database. The SDK also supports a full session-list bridge (`list`, `create`, `delete`, `rename`) for apps that show a sidebar of past conversations — see `SessionConfig` in the source for the full shape.
|
|
678
|
-
|
|
679
|
-
### Manual wiring (sharing chat state with other components)
|
|
680
|
-
|
|
681
|
-
If you need to trigger chat programmatically from a button, show unread counts in the header, or render transcripts somewhere outside the chat panel, skip the drop-in widget and wire things manually:
|
|
682
|
-
|
|
683
|
-
```tsx
|
|
684
|
-
'use client';
|
|
685
|
-
import { AiChatProvider, AiChatPanel, useAiChat } from 'glirastes/react';
|
|
686
|
-
import { useVercelAiChatTransport } from 'glirastes/react/vercel';
|
|
687
|
-
|
|
688
|
-
export function ChatShell({ children }: { children: React.ReactNode }) {
|
|
689
|
-
const transport = useVercelAiChatTransport({ endpoint: '/api/chat' });
|
|
690
|
-
return (
|
|
691
|
-
<AiChatProvider transport={transport}>
|
|
692
|
-
{children}
|
|
693
|
-
<AiChatPanel />
|
|
694
|
-
</AiChatProvider>
|
|
695
|
-
);
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
// Anywhere inside the provider:
|
|
699
|
-
function HeaderBadge() {
|
|
700
|
-
const { messages, isLoading } = useAiChat();
|
|
701
|
-
return <span>{isLoading ? '•••' : messages.length}</span>;
|
|
702
|
-
}
|
|
703
|
-
```
|
|
704
|
-
|
|
705
|
-
### PII Shield — protect personal data from the LLM
|
|
706
|
-
|
|
707
|
-
```ts
|
|
708
|
-
import { createPiiShield, createAiChatHandler } from 'glirastes/server';
|
|
709
|
-
import { createLancer } from 'glirastes/server/lancer';
|
|
710
|
-
|
|
711
|
-
const lancer = createLancer({ apiKey: process.env.GLIRASTES_API_KEY });
|
|
712
|
-
|
|
713
|
-
const piiShield = createPiiShield({
|
|
714
|
-
lancer, // delegate detection to Aegis (Pro)
|
|
715
|
-
mode: 'pseudonymize', // same PII → same pseudonym across a conversation
|
|
716
|
-
});
|
|
717
|
-
|
|
718
|
-
export const POST = createAiChatHandler({
|
|
719
|
-
tools: registry,
|
|
720
|
-
piiShield,
|
|
721
|
-
});
|
|
722
|
-
```
|
|
723
|
-
|
|
724
|
-
User sends "Email the invoice to john@example.com" → shield replaces `john@example.com` with `Email_A` before the LLM sees it → LLM calls `send_email({ to: 'Email_A' })` → shield rehydrates the real address before your API is called.
|
|
725
|
-
|
|
726
|
-
The free tier provides a **local detector** if you skip Lancer. Not as accurate as Aegis but zero-dependency and offline-safe.
|
|
727
|
-
|
|
728
|
-
### Approvals — human-in-the-loop for sensitive tools
|
|
729
|
-
|
|
730
|
-
Some tools shouldn't run just because the LLM decided to. `delete_user` should require human confirmation. Set it up via Lancer approvals (Pro):
|
|
731
|
-
|
|
732
|
-
```ts
|
|
733
|
-
const lancer = createLancer({
|
|
734
|
-
apiKey: process.env.GLIRASTES_API_KEY,
|
|
735
|
-
approvals: {
|
|
736
|
-
policies: {
|
|
737
|
-
'users.delete': 'require',
|
|
738
|
-
'billing.charge': 'require',
|
|
739
|
-
'users.list': 'auto',
|
|
740
|
-
},
|
|
741
|
-
},
|
|
742
|
-
});
|
|
743
|
-
```
|
|
744
|
-
|
|
745
|
-
The chat UI renders an `<ApprovalCard>` in the conversation — "The AI wants to delete user X. Approve or Reject?" — and pauses execution until the user clicks. If Lancer is unavailable, the SDK falls back to the local `needsApproval` flag (deprecated but still functional).
|
|
746
|
-
|
|
747
|
-
### Followup Suggestions
|
|
748
|
-
|
|
749
|
-
After the LLM responds, it can suggest follow-up questions as clickable chips. This is powered by an internal `suggest_followups` tool that the LLM calls at the end of a turn. Configurable count (default 3, max 5), locale, and good/bad examples.
|
|
750
|
-
|
|
751
|
-
Enable via:
|
|
752
|
-
|
|
753
|
-
```ts
|
|
754
|
-
createAiChatHandler({
|
|
755
|
-
tools: registry,
|
|
756
|
-
followups: { enabled: true, count: 3, locale: 'en-US' },
|
|
757
|
-
});
|
|
758
|
-
```
|
|
759
|
-
|
|
760
|
-
### Voice input
|
|
761
|
-
|
|
762
|
-
```tsx
|
|
763
|
-
import { VoiceInputButton } from 'glirastes/react';
|
|
764
|
-
|
|
765
|
-
<VoiceInputButton
|
|
766
|
-
onTranscript={(text) => console.log(text)}
|
|
767
|
-
language="en"
|
|
768
|
-
baseUrl="/api/ai/speech-transcribe"
|
|
769
|
-
getToken={() => authToken}
|
|
770
|
-
/>
|
|
771
|
-
```
|
|
772
|
-
|
|
773
|
-
The voice button streams audio to your backend, which proxies it to a speech-to-text provider (Deepgram, etc.). The API key never leaves the server.
|
|
774
|
-
|
|
775
|
-
> Install `wavesurfer.js` (`npm install wavesurfer.js`) to get the live waveform visualization during recording. Without it the button still works — it just falls back to a static recording indicator.
|
|
776
|
-
|
|
777
|
-
<br/>
|
|
778
|
-
|
|
779
|
-
## Scaling up — required codegen workflow for Next.js
|
|
780
|
-
|
|
781
|
-
Hand-importing every tool definition into your chat route doesn't scale past a handful. **In Glirastes 0.3.x the canonical pattern for Next.js consumers is to run the CLI codegen as a build hook** — it generates a registry from co-located `*.ai-tool.ts` files. The chat route imports the generated registry instead of maintaining a manual import list.
|
|
782
|
-
|
|
783
|
-
> NestJS users **skip this section entirely.** `AiChatModule.forRoot()` discovers `@AiTool`-decorated controllers at runtime via the NestJS `DiscoveryService` — no codegen step is ever needed.
|
|
784
|
-
>
|
|
785
|
-
> **Coming in 0.4.0:** a `buildToolRegistry` helper based on `import.meta.glob` / `require.context` will let Next.js consumers skip the codegen step too. Until then the steps below are required for any non-trivial Next.js app.
|
|
786
|
-
|
|
787
|
-
### 1. Bootstrap a tool from an existing route
|
|
164
|
+
`glirastes tools refresh` derives endpoint, navigation, filter and
|
|
165
|
+
client-action tools from Next.js, NestJS, OpenAPI (FastAPI), react-router and
|
|
166
|
+
vue-router sources, and from `useAiClientAction` registrations. The output is
|
|
167
|
+
committed with the code; `glirastes tools check` fails CI when it is stale.
|
|
788
168
|
|
|
789
169
|
```bash
|
|
790
|
-
|
|
791
|
-
#
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
170
|
+
glirastes tools refresh # derive tools (--watch next to `next dev`)
|
|
171
|
+
glirastes tools status # what the chat can do
|
|
172
|
+
glirastes tools check # verify committed outputs, no model, no network
|
|
173
|
+
glirastes tools eval # every example sentence finds its tool
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Policy.** Reads run directly, writes ask first, deletes and anything
|
|
177
|
+
external or financial always ask. Change that locally with
|
|
178
|
+
`glirastes tools policy` (`show`, `disable`, `confirm`, `relax`, `raise`,
|
|
179
|
+
`roles`, `exclude`, ...); it writes `.glirastes/tool-policy.json`. See
|
|
180
|
+
[docs/tool-policy.md](docs/tool-policy.md).
|
|
181
|
+
|
|
182
|
+
**Describing tools.** Glirastes itself never calls a model. Descriptions,
|
|
183
|
+
synonyms and example calls are written by a coding agent from work lists:
|
|
184
|
+
|
|
185
|
+
- **Free:** your own coding agent works through `glirastes tools resolve --print`
|
|
186
|
+
and `glirastes tools describe --print` with the shipped skills
|
|
187
|
+
`maintaining-glirastes-tools` and `describing-glirastes-tools`, and you
|
|
188
|
+
commit the result.
|
|
189
|
+
- **Pro:** the managed CI tool agent (`glirastes tools enrich --managed`)
|
|
190
|
+
runs the same skills in your CI, only on the tools a pull request or push
|
|
191
|
+
changed, and commits the result as `glirastes-bot`. Model requests go
|
|
192
|
+
through OpenRouter with the routing the Platform grants for the job (no
|
|
193
|
+
data collection, zero data retention), or your own key in
|
|
194
|
+
`GLIRASTES_TOOLS_OPENROUTER_KEY`. Requires the optional peer
|
|
195
|
+
`@ai-sdk/openai`.
|
|
196
|
+
|
|
197
|
+
## CI
|
|
812
198
|
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
199
|
+
```bash
|
|
200
|
+
npx glirastes init --ci github [--enrich-on staging,main] [--ci-environment staging]
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
writes `.github/workflows/glirastes-tools.yml` for your package manager with
|
|
204
|
+
two jobs:
|
|
205
|
+
|
|
206
|
+
| Job | What it does | Needs |
|
|
207
|
+
|---|---|---|
|
|
208
|
+
| `glirastes-tools` | `tools check` and `tools eval` on every pull request and push to `main` | nothing: no secrets, no model |
|
|
209
|
+
| `glirastes-tools-enrich` (Pro) | runs the managed tool agent on pull requests and commits into the PR branch | variable `GLIRASTES_MANAGED_TOOLS=true`, variable `GLIRASTES_CONTROL_PLANE_URL`, secret `GLIRASTES_CI_KEY` |
|
|
210
|
+
|
|
211
|
+
- `--enrich-on <branch,...>` (or `--enrich-on-main`) also runs the agent
|
|
212
|
+
after pushes to those branches; there it opens a pull request instead of
|
|
213
|
+
committing, and the workflow gets a manual start that works the whole
|
|
214
|
+
backlog once.
|
|
215
|
+
- `--ci-environment <name>` reads the three values from that GitHub
|
|
216
|
+
environment instead of the repository.
|
|
217
|
+
- Set the variable `GLIRASTES_BOT_APP_ID` and the secret
|
|
218
|
+
`GLIRASTES_BOT_APP_PRIVATE_KEY` to push as a GitHub App, so the bot's
|
|
219
|
+
commits and pull requests trigger your checks. Without them the job uses
|
|
220
|
+
the workflow token.
|
|
221
|
+
- An existing workflow with other content is refused unless you pass `--force`.
|
|
222
|
+
|
|
223
|
+
## Chat UI & speech
|
|
224
|
+
|
|
225
|
+
`glirastes/react` ships one chat implementation; `VercelAiChat` from
|
|
226
|
+
`glirastes/react/vercel` connects it to the AI SDK route.
|
|
227
|
+
|
|
228
|
+
- Docked sidebar or floating window (`AssistantWorkspace`, `AssistantToggle`),
|
|
229
|
+
themes, slots, tool result renderers and approval cards.
|
|
230
|
+
- `useAiClientAction(id, handler, contract)` lets the chat drive UI state;
|
|
231
|
+
`refresh` turns each registration into a tool.
|
|
232
|
+
- Generic `@` mentions and `/` commands derived from your tools
|
|
233
|
+
([docs/chat-interactions.md](docs/chat-interactions.md)).
|
|
234
|
+
- A per-message work log of tool calls and an optional plan checklist.
|
|
235
|
+
- `unstyled` to bring your own CSS; `deChatLocale` for German texts.
|
|
236
|
+
- Push-to-talk speech input through one STT controller (`voice` config,
|
|
237
|
+
`glirastes/stt` adapters, `createRecordingTranscriptionHandler` for a
|
|
238
|
+
server-side transcription route). Audio goes from the app to its own
|
|
239
|
+
provider, never through Glirastes.
|
|
240
|
+
- Without React: the `<glirastes-chat>` element from `glirastes/embed` and the
|
|
241
|
+
bridge in `glirastes/browser`.
|
|
242
|
+
|
|
243
|
+
See the skill [`building-glirastes-chat-ui`](skills/building-glirastes-chat-ui/SKILL.md).
|
|
244
|
+
|
|
245
|
+
## Standalone and Connected
|
|
246
|
+
|
|
247
|
+
| | Standalone | Connected |
|
|
248
|
+
|---|---|---|
|
|
249
|
+
| Trigger | no `GLIRASTES_API_KEY` | `GLIRASTES_API_KEY` is set |
|
|
250
|
+
| Network | none | Platform lookup, registration, sync and metrics, all off the turn path |
|
|
251
|
+
| Config | local code and `.glirastes/` | reviewed, signed, immutable revisions with rollouts and revocations |
|
|
252
|
+
|
|
253
|
+
`createGlirastes` from `glirastes/runtime` handles both. Connected, it falls
|
|
254
|
+
back to the local code whenever the Platform is unreachable and reports errors
|
|
255
|
+
to `onError` (operation and status only). `GLIRASTES_CONTROL_PLANE_URL` is
|
|
256
|
+
optional and defaults to `https://api.glirastes.io`; set it only
|
|
257
|
+
for a self-hosted or local Platform.
|
|
832
258
|
|
|
833
259
|
```bash
|
|
834
|
-
|
|
835
|
-
|
|
260
|
+
npx glirastes connect # pair the app with the hosted Platform, writes GLIRASTES_API_KEY
|
|
261
|
+
npx glirastes sync # upload the current local setup
|
|
262
|
+
npx glirastes doctor # local checks, no network
|
|
836
263
|
```
|
|
837
264
|
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
265
|
+
Pass `--base-url <platform-url>` to `connect` only for a self-hosted or local
|
|
266
|
+
Platform. For a production server or CI where nobody runs `connect`, create a
|
|
267
|
+
key in the Platform dashboard under **Settings → API keys → "Keys for servers
|
|
268
|
+
and CI"** and set it as `GLIRASTES_API_KEY`.
|
|
841
269
|
|
|
842
|
-
|
|
270
|
+
The **Glirastes Platform** is the optional control plane: reviewed tool
|
|
271
|
+
configuration, signed immutable revisions, staged rollouts, approvals and
|
|
272
|
+
content-free health. **Free** covers the local SDK, the local skill workflow
|
|
273
|
+
and a connected app; **Pro** adds the managed CI tool agent. Details:
|
|
274
|
+
[docs/managed-runtime-sync.md](docs/managed-runtime-sync.md),
|
|
275
|
+
[docs/runtime-persistence.md](docs/runtime-persistence.md).
|
|
843
276
|
|
|
844
|
-
|
|
277
|
+
## Package surface
|
|
845
278
|
|
|
846
|
-
|
|
|
279
|
+
| Import | Purpose |
|
|
847
280
|
|---|---|
|
|
848
|
-
| `
|
|
849
|
-
| `
|
|
850
|
-
| `
|
|
851
|
-
| `
|
|
852
|
-
| `
|
|
853
|
-
| `
|
|
854
|
-
| `
|
|
855
|
-
| `
|
|
856
|
-
| `
|
|
857
|
-
| `
|
|
858
|
-
| `
|
|
859
|
-
| `
|
|
860
|
-
| `
|
|
861
|
-
| `
|
|
862
|
-
| `
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
## Agent skills
|
|
868
|
-
|
|
869
|
-
Glirastes ships pre-built [agent skills](https://docs.claude.com/en/docs/claude-code/skills) under [`skills/`](./skills) that teach a coding agent (Claude Code, Codex, Cursor, …) how to integrate, maintain, and customize the SDK. Drop them into your repo and the agent picks the right one automatically.
|
|
870
|
-
|
|
871
|
-
| Skill | Use when |
|
|
281
|
+
| `glirastes` | Shared types, tool definition helpers and diagnostics |
|
|
282
|
+
| `glirastes/runtime` | `createGlirastes`, local authorization, pinned turns, budgets, durable stores |
|
|
283
|
+
| `glirastes/server` | Server pipeline, including `createLocalAiPipeline` |
|
|
284
|
+
| `glirastes/server/nextjs` | Next.js handlers: `createAiChatHandler`, `createChatInteractionsHandler`, `createRecordingTranscriptionHandler` (alias `glirastes/adapter/nextjs`) |
|
|
285
|
+
| `glirastes/server/testing` | Test helpers for tool setups without model calls (ESM only) |
|
|
286
|
+
| `glirastes/react` | Chat UI, provider, hooks, client actions, navigation bridge, STT |
|
|
287
|
+
| `glirastes/react/vercel` | AI SDK transport and `VercelAiChat` |
|
|
288
|
+
| `glirastes/react/styles.css` | Shipped chat styles |
|
|
289
|
+
| `glirastes/stt` | Provider-neutral STT controller and adapters |
|
|
290
|
+
| `glirastes/ai-sdk` | Vercel AI SDK reference engine (alias `glirastes/runtime/ai-sdk`) |
|
|
291
|
+
| `glirastes/contracts` | Principals, budgets, manifests, revisions, deployments |
|
|
292
|
+
| `glirastes/sync` | Signed revision cache, rollout selection, revocations |
|
|
293
|
+
| `glirastes/embed` | `<glirastes-chat>` element for apps without React |
|
|
294
|
+
| `glirastes/browser` | Navigation bridge, query filters and client actions without React |
|
|
295
|
+
| `glirastes/codegen` | Route scanning and execution-inventory discovery used by the CLI |
|
|
296
|
+
|
|
297
|
+
## CLI reference
|
|
298
|
+
|
|
299
|
+
| Command | Purpose |
|
|
872
300
|
|---|---|
|
|
873
|
-
|
|
|
874
|
-
|
|
|
875
|
-
|
|
|
876
|
-
|
|
|
877
|
-
|
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
301
|
+
| `glirastes init [--agent codex\|claude] [--dry-run] [--json]` | Scaffold inputs, install skills, hand setup to your coding agent |
|
|
302
|
+
| `glirastes init --ci github [...]` | Write the GitHub tools workflow ([CI](#ci)) |
|
|
303
|
+
| `glirastes tools refresh [--watch] [--mode write\|frozen\|integrity]` | Derive tools from the code |
|
|
304
|
+
| `glirastes tools check [--strict] [--integrity-only]` | Verify committed tool outputs |
|
|
305
|
+
| `glirastes tools status` | Show what the chat can do |
|
|
306
|
+
| `glirastes tools resolve --print` | Work list of open findings for your agent |
|
|
307
|
+
| `glirastes tools describe --print [<tool>...\|--all]` | Work list of descriptions, synonyms and examples |
|
|
308
|
+
| `glirastes tools eval` | Check that example sentences find their tool |
|
|
309
|
+
| `glirastes tools verify <tool>...\|--all` | Confirm agent-written contracts after review |
|
|
310
|
+
| `glirastes tools policy <...>` | Change the local tool policy |
|
|
311
|
+
| `glirastes tools enrich --managed [--first-run] [--base <branch>]` | Pro, CI only: run the managed tool agent |
|
|
312
|
+
| `glirastes setup [--dry-run] [--managed]` | Validate and install the local setup artifacts |
|
|
313
|
+
| `glirastes setup inspect` | Inspect project manifests before integration |
|
|
314
|
+
| `glirastes connect [--base-url <url>]` | Pair the app with the Platform (`--base-url` only for self-hosted) |
|
|
315
|
+
| `glirastes sync` | Upload the current local setup |
|
|
316
|
+
| `glirastes doctor [--managed] [--verbose] [--json]` | Diagnose the local setup |
|
|
317
|
+
| `glirastes install [--host a,b]` | Install the agent skills only |
|
|
318
|
+
|
|
319
|
+
`glirastes --help` lists every command and flag; `glirastes tools` and
|
|
320
|
+
`glirastes tools policy` print their own usage.
|
|
889
321
|
|
|
890
|
-
|
|
891
|
-
npx glirastes install-skills -g
|
|
892
|
-
|
|
893
|
-
# Only the skills relevant to your stack
|
|
894
|
-
npx glirastes install-skills --stack nextjs # Next.js standalone
|
|
895
|
-
npx glirastes install-skills --stack nestjs # NestJS standalone
|
|
896
|
-
npx glirastes install-skills --stack nextjs+nestjs # full-stack monorepo
|
|
897
|
-
|
|
898
|
-
# Different agent? Pass --target
|
|
899
|
-
npx glirastes install-skills --target .codex/skills
|
|
322
|
+
## Agent skills
|
|
900
323
|
|
|
901
|
-
|
|
902
|
-
|
|
324
|
+
The package ships seven skills in [`skills/`](skills/README.md) for your
|
|
325
|
+
existing coding agent (Codex, Claude Code, Gemini): `setting-up-glirastes`,
|
|
326
|
+
`integrating-glirastes-nextjs`, `integrating-glirastes-web`,
|
|
327
|
+
`maintaining-glirastes-tools`, `describing-glirastes-tools`,
|
|
328
|
+
`building-glirastes-chat-ui` and `migrating-to-glirastes`. `glirastes init`
|
|
329
|
+
installs them; `glirastes install --host codex --with-setup-skills` installs
|
|
330
|
+
them without starting setup.
|
|
903
331
|
|
|
904
|
-
|
|
905
|
-
npx glirastes install-skills --dry-run
|
|
332
|
+
## Support matrix
|
|
906
333
|
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
334
|
+
Next.js 15 App Router, React (Vite, react-router) + NestJS 11 and Vue 3 +
|
|
335
|
+
FastAPI are integrated and automatically checked. Exact levels and evidence:
|
|
336
|
+
[docs/support-matrix.md](docs/support-matrix.md).
|
|
910
337
|
|
|
911
|
-
|
|
338
|
+
## Docs
|
|
912
339
|
|
|
913
|
-
|
|
340
|
+
- [Support matrix](docs/support-matrix.md)
|
|
341
|
+
- [Tool policy](docs/tool-policy.md)
|
|
342
|
+
- [Chat route security](docs/chat-route-security.md)
|
|
343
|
+
- [Chat interactions (`@` and `/`)](docs/chat-interactions.md)
|
|
344
|
+
- [Managed runtime sync](docs/managed-runtime-sync.md)
|
|
345
|
+
- [Runtime persistence](docs/runtime-persistence.md)
|
|
346
|
+
- [0.5.0 acceptance](docs/acceptance/0.5.0-acceptance.md)
|
|
347
|
+
- [Agent skills](skills/README.md)
|
|
348
|
+
- Examples: [`examples/`](examples/)
|
|
914
349
|
|
|
915
|
-
|
|
350
|
+
## Upgrading from 0.4
|
|
916
351
|
|
|
917
|
-
|
|
352
|
+
`0.5.0` is the first Foundation release. Its surface differs from
|
|
353
|
+
`glirastes@0.4.0`: exports, codegen APIs and CLI commands were removed or
|
|
354
|
+
replaced. Read **Breaking** in [CHANGELOG.md](CHANGELOG.md) before upgrading;
|
|
355
|
+
the skill [`migrating-to-glirastes`](skills/migrating-to-glirastes/SKILL.md)
|
|
356
|
+
covers moving off `@chainmatics/agentic-*`.
|
|
918
357
|
|
|
919
|
-
|
|
358
|
+
## Security & License
|
|
920
359
|
|
|
921
|
-
|
|
360
|
+
Report vulnerabilities as described in [SECURITY.md](SECURITY.md).
|
|
361
|
+
Contributions: [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
922
362
|
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
<p align="center">
|
|
926
|
-
<sub>Built by <a href="https://chainmatics.de">Chainmatics</a></sub>
|
|
927
|
-
</p>
|
|
363
|
+
Apache-2.0, see [LICENSE](LICENSE) and [NOTICE](NOTICE).
|