@oddkin/ai 0.0.0-stage → 1.0.0-beta.0
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/LICENSE +21 -0
- package/README.md +108 -2
- package/agent/GUIDE.md +39 -0
- package/agent/kit.json +425 -0
- package/agent/llms.txt +82 -0
- package/agent/references/choosing-components.md +78 -0
- package/agent/references/components/odd-action-approval.md +81 -0
- package/agent/references/components/odd-activity.md +78 -0
- package/agent/references/components/odd-ai-label.md +73 -0
- package/agent/references/components/odd-artifact.md +88 -0
- package/agent/references/components/odd-change-review.md +81 -0
- package/agent/references/components/odd-checkpoint.md +78 -0
- package/agent/references/components/odd-citation.md +76 -0
- package/agent/references/components/odd-context-picker.md +78 -0
- package/agent/references/components/odd-conversation.md +106 -0
- package/agent/references/components/odd-inline-assist.md +84 -0
- package/agent/references/components/odd-message-branch.md +73 -0
- package/agent/references/components/odd-message.md +99 -0
- package/agent/references/components/odd-model-select.md +84 -0
- package/agent/references/components/odd-prompt-input.md +116 -0
- package/agent/references/components/odd-question.md +78 -0
- package/agent/references/components/odd-response-feedback.md +79 -0
- package/agent/references/components/odd-response.md +94 -0
- package/agent/references/components/odd-sources.md +80 -0
- package/agent/references/components/odd-suggestions.md +76 -0
- package/agent/references/components/odd-task-plan.md +73 -0
- package/agent/references/components/odd-tool-call.md +82 -0
- package/agent/references/components/odd-transcript.md +73 -0
- package/agent/references/components/odd-usage-meter.md +71 -0
- package/agent/references/components/odd-voice-input.md +80 -0
- package/agent/references/models/oddkin.ai.approval.md +3 -0
- package/agent/references/models/oddkin.ai.artifact.md +3 -0
- package/agent/references/models/oddkin.ai.checkpoint.md +3 -0
- package/agent/references/models/oddkin.ai.context-item.md +3 -0
- package/agent/references/models/oddkin.ai.conversation.md +3 -0
- package/agent/references/models/oddkin.ai.feedback.md +3 -0
- package/agent/references/models/oddkin.ai.message.md +3 -0
- package/agent/references/models/oddkin.ai.model-option.md +3 -0
- package/agent/references/models/oddkin.ai.plan.md +3 -0
- package/agent/references/models/oddkin.ai.question.md +3 -0
- package/agent/references/models/oddkin.ai.suggestion.md +3 -0
- package/agent/references/models/oddkin.ai.tool-call.md +3 -0
- package/agent/references/models/oddkin.ai.transcript-segment.md +3 -0
- package/agent/references/models/oddkin.ai.usage.md +3 -0
- package/agent/references/recipes/action-approval.md +12 -0
- package/agent/references/recipes/activity.md +9 -0
- package/agent/references/recipes/ai-element.md +9 -0
- package/agent/references/recipes/artifact.md +10 -0
- package/agent/references/recipes/change-review.md +11 -0
- package/agent/references/recipes/checkpoint.md +10 -0
- package/agent/references/recipes/citation.md +9 -0
- package/agent/references/recipes/context-picker.md +12 -0
- package/agent/references/recipes/conversation.md +12 -0
- package/agent/references/recipes/inline-assist.md +11 -0
- package/agent/references/recipes/message.md +12 -0
- package/agent/references/recipes/prompt-input.md +12 -0
- package/agent/references/recipes/question.md +12 -0
- package/agent/references/recipes/response-feedback.md +12 -0
- package/agent/references/recipes/sources.md +10 -0
- package/agent/references/recipes/suggestions.md +9 -0
- package/agent/references/recipes/task-plan.md +15 -0
- package/agent/references/recipes/tool-call.md +11 -0
- package/agent/references/recipes/transcript.md +9 -0
- package/agent/references/recipes/usage-meter.md +9 -0
- package/agent/references/recipes/voice-input.md +9 -0
- package/agent/references/tokens/component.md +13 -0
- package/agent/references/tokens/foundation.md +73 -0
- package/agent/references/tokens/layout.md +12 -0
- package/agent/references/tokens/reference.md +74 -0
- package/agent/references/tokens/semantic.md +91 -0
- package/custom-elements.json +3998 -0
- package/dist/action-approval/action-approval.d.ts +207 -0
- package/dist/action-approval/action-approval.d.ts.map +1 -0
- package/dist/action-approval/action-approval.define.d.ts +3 -0
- package/dist/action-approval/action-approval.define.d.ts.map +1 -0
- package/dist/action-approval/action-approval.define.js +5 -0
- package/dist/action-approval/action-approval.define.js.map +1 -0
- package/dist/action-approval/action-approval.definition.d.ts +3 -0
- package/dist/action-approval/action-approval.definition.d.ts.map +1 -0
- package/dist/action-approval/action-approval.definition.js +14 -0
- package/dist/action-approval/action-approval.definition.js.map +1 -0
- package/dist/action-approval/action-approval.js +172 -0
- package/dist/action-approval/action-approval.js.map +1 -0
- package/dist/action-approval/action-approval.recipe.d.ts +6 -0
- package/dist/action-approval/action-approval.recipe.d.ts.map +1 -0
- package/dist/action-approval/action-approval.recipe.js +16 -0
- package/dist/action-approval/action-approval.recipe.js.map +1 -0
- package/dist/action-approval/action-approval.recipe.styles.d.ts +2 -0
- package/dist/action-approval/action-approval.recipe.styles.d.ts.map +1 -0
- package/dist/action-approval/action-approval.recipe.styles.js +5 -0
- package/dist/action-approval/action-approval.recipe.styles.js.map +1 -0
- package/dist/action-approval/action-approval.styles.d.ts +3 -0
- package/dist/action-approval/action-approval.styles.d.ts.map +1 -0
- package/dist/action-approval/action-approval.styles.js +67 -0
- package/dist/action-approval/action-approval.styles.js.map +1 -0
- package/dist/action-approval/action-approval.template.d.ts +4 -0
- package/dist/action-approval/action-approval.template.d.ts.map +1 -0
- package/dist/action-approval/action-approval.template.js +93 -0
- package/dist/action-approval/action-approval.template.js.map +1 -0
- package/dist/action-approval/index.d.ts +5 -0
- package/dist/action-approval/index.d.ts.map +1 -0
- package/dist/action-approval/index.js +6 -0
- package/dist/action-approval/index.js.map +1 -0
- package/dist/activity/activity.d.ts +178 -0
- package/dist/activity/activity.d.ts.map +1 -0
- package/dist/activity/activity.define.d.ts +3 -0
- package/dist/activity/activity.define.d.ts.map +1 -0
- package/dist/activity/activity.define.js +5 -0
- package/dist/activity/activity.define.js.map +1 -0
- package/dist/activity/activity.definition.d.ts +3 -0
- package/dist/activity/activity.definition.d.ts.map +1 -0
- package/dist/activity/activity.definition.js +12 -0
- package/dist/activity/activity.definition.js.map +1 -0
- package/dist/activity/activity.js +124 -0
- package/dist/activity/activity.js.map +1 -0
- package/dist/activity/activity.recipe.d.ts +3 -0
- package/dist/activity/activity.recipe.d.ts.map +1 -0
- package/dist/activity/activity.recipe.js +8 -0
- package/dist/activity/activity.recipe.js.map +1 -0
- package/dist/activity/activity.recipe.styles.d.ts +2 -0
- package/dist/activity/activity.recipe.styles.d.ts.map +1 -0
- package/dist/activity/activity.recipe.styles.js +5 -0
- package/dist/activity/activity.recipe.styles.js.map +1 -0
- package/dist/activity/activity.styles.d.ts +3 -0
- package/dist/activity/activity.styles.d.ts.map +1 -0
- package/dist/activity/activity.styles.js +37 -0
- package/dist/activity/activity.styles.js.map +1 -0
- package/dist/activity/activity.template.d.ts +4 -0
- package/dist/activity/activity.template.d.ts.map +1 -0
- package/dist/activity/activity.template.js +23 -0
- package/dist/activity/activity.template.js.map +1 -0
- package/dist/activity/index.d.ts +5 -0
- package/dist/activity/index.d.ts.map +1 -0
- package/dist/activity/index.js +6 -0
- package/dist/activity/index.js.map +1 -0
- package/dist/ai-label/ai-label.d.ts +57 -0
- package/dist/ai-label/ai-label.d.ts.map +1 -0
- package/dist/ai-label/ai-label.define.d.ts +3 -0
- package/dist/ai-label/ai-label.define.d.ts.map +1 -0
- package/dist/ai-label/ai-label.define.js +5 -0
- package/dist/ai-label/ai-label.define.js.map +1 -0
- package/dist/ai-label/ai-label.definition.d.ts +3 -0
- package/dist/ai-label/ai-label.definition.d.ts.map +1 -0
- package/dist/ai-label/ai-label.definition.js +12 -0
- package/dist/ai-label/ai-label.definition.js.map +1 -0
- package/dist/ai-label/ai-label.js +41 -0
- package/dist/ai-label/ai-label.js.map +1 -0
- package/dist/ai-label/ai-label.styles.d.ts +2 -0
- package/dist/ai-label/ai-label.styles.d.ts.map +1 -0
- package/dist/ai-label/ai-label.styles.js +40 -0
- package/dist/ai-label/ai-label.styles.js.map +1 -0
- package/dist/ai-label/ai-label.template.d.ts +4 -0
- package/dist/ai-label/ai-label.template.d.ts.map +1 -0
- package/dist/ai-label/ai-label.template.js +32 -0
- package/dist/ai-label/ai-label.template.js.map +1 -0
- package/dist/ai-label/index.d.ts +5 -0
- package/dist/ai-label/index.d.ts.map +1 -0
- package/dist/ai-label/index.js +6 -0
- package/dist/ai-label/index.js.map +1 -0
- package/dist/announce.d.ts +11 -0
- package/dist/announce.d.ts.map +1 -0
- package/dist/announce.js +21 -0
- package/dist/announce.js.map +1 -0
- package/dist/artifact/artifact.d.ts +118 -0
- package/dist/artifact/artifact.d.ts.map +1 -0
- package/dist/artifact/artifact.define.d.ts +3 -0
- package/dist/artifact/artifact.define.d.ts.map +1 -0
- package/dist/artifact/artifact.define.js +5 -0
- package/dist/artifact/artifact.define.js.map +1 -0
- package/dist/artifact/artifact.definition.d.ts +3 -0
- package/dist/artifact/artifact.definition.d.ts.map +1 -0
- package/dist/artifact/artifact.definition.js +12 -0
- package/dist/artifact/artifact.definition.js.map +1 -0
- package/dist/artifact/artifact.js +190 -0
- package/dist/artifact/artifact.js.map +1 -0
- package/dist/artifact/artifact.recipe.d.ts +3 -0
- package/dist/artifact/artifact.recipe.d.ts.map +1 -0
- package/dist/artifact/artifact.recipe.js +11 -0
- package/dist/artifact/artifact.recipe.js.map +1 -0
- package/dist/artifact/artifact.recipe.styles.d.ts +2 -0
- package/dist/artifact/artifact.recipe.styles.d.ts.map +1 -0
- package/dist/artifact/artifact.recipe.styles.js +5 -0
- package/dist/artifact/artifact.recipe.styles.js.map +1 -0
- package/dist/artifact/artifact.styles.d.ts +3 -0
- package/dist/artifact/artifact.styles.d.ts.map +1 -0
- package/dist/artifact/artifact.styles.js +65 -0
- package/dist/artifact/artifact.styles.js.map +1 -0
- package/dist/artifact/artifact.template.d.ts +4 -0
- package/dist/artifact/artifact.template.d.ts.map +1 -0
- package/dist/artifact/artifact.template.js +60 -0
- package/dist/artifact/artifact.template.js.map +1 -0
- package/dist/artifact/index.d.ts +6 -0
- package/dist/artifact/index.d.ts.map +1 -0
- package/dist/artifact/index.js +6 -0
- package/dist/artifact/index.js.map +1 -0
- package/dist/change-review/change-review.d.ts +101 -0
- package/dist/change-review/change-review.d.ts.map +1 -0
- package/dist/change-review/change-review.define.d.ts +3 -0
- package/dist/change-review/change-review.define.d.ts.map +1 -0
- package/dist/change-review/change-review.define.js +5 -0
- package/dist/change-review/change-review.define.js.map +1 -0
- package/dist/change-review/change-review.definition.d.ts +3 -0
- package/dist/change-review/change-review.definition.d.ts.map +1 -0
- package/dist/change-review/change-review.definition.js +14 -0
- package/dist/change-review/change-review.definition.js.map +1 -0
- package/dist/change-review/change-review.js +142 -0
- package/dist/change-review/change-review.js.map +1 -0
- package/dist/change-review/change-review.recipe.d.ts +6 -0
- package/dist/change-review/change-review.recipe.d.ts.map +1 -0
- package/dist/change-review/change-review.recipe.js +15 -0
- package/dist/change-review/change-review.recipe.js.map +1 -0
- package/dist/change-review/change-review.recipe.styles.d.ts +2 -0
- package/dist/change-review/change-review.recipe.styles.d.ts.map +1 -0
- package/dist/change-review/change-review.recipe.styles.js +5 -0
- package/dist/change-review/change-review.recipe.styles.js.map +1 -0
- package/dist/change-review/change-review.styles.d.ts +3 -0
- package/dist/change-review/change-review.styles.d.ts.map +1 -0
- package/dist/change-review/change-review.styles.js +68 -0
- package/dist/change-review/change-review.styles.js.map +1 -0
- package/dist/change-review/change-review.template.d.ts +4 -0
- package/dist/change-review/change-review.template.d.ts.map +1 -0
- package/dist/change-review/change-review.template.js +91 -0
- package/dist/change-review/change-review.template.js.map +1 -0
- package/dist/change-review/index.d.ts +5 -0
- package/dist/change-review/index.d.ts.map +1 -0
- package/dist/change-review/index.js +6 -0
- package/dist/change-review/index.js.map +1 -0
- package/dist/checkpoint/checkpoint.d.ts +162 -0
- package/dist/checkpoint/checkpoint.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint.define.d.ts +3 -0
- package/dist/checkpoint/checkpoint.define.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint.define.js +5 -0
- package/dist/checkpoint/checkpoint.define.js.map +1 -0
- package/dist/checkpoint/checkpoint.definition.d.ts +3 -0
- package/dist/checkpoint/checkpoint.definition.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint.definition.js +14 -0
- package/dist/checkpoint/checkpoint.definition.js.map +1 -0
- package/dist/checkpoint/checkpoint.js +130 -0
- package/dist/checkpoint/checkpoint.js.map +1 -0
- package/dist/checkpoint/checkpoint.recipe.d.ts +3 -0
- package/dist/checkpoint/checkpoint.recipe.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint.recipe.js +11 -0
- package/dist/checkpoint/checkpoint.recipe.js.map +1 -0
- package/dist/checkpoint/checkpoint.recipe.styles.d.ts +2 -0
- package/dist/checkpoint/checkpoint.recipe.styles.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint.recipe.styles.js +5 -0
- package/dist/checkpoint/checkpoint.recipe.styles.js.map +1 -0
- package/dist/checkpoint/checkpoint.styles.d.ts +3 -0
- package/dist/checkpoint/checkpoint.styles.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint.styles.js +39 -0
- package/dist/checkpoint/checkpoint.styles.js.map +1 -0
- package/dist/checkpoint/checkpoint.template.d.ts +4 -0
- package/dist/checkpoint/checkpoint.template.d.ts.map +1 -0
- package/dist/checkpoint/checkpoint.template.js +69 -0
- package/dist/checkpoint/checkpoint.template.js.map +1 -0
- package/dist/checkpoint/index.d.ts +5 -0
- package/dist/checkpoint/index.d.ts.map +1 -0
- package/dist/checkpoint/index.js +6 -0
- package/dist/checkpoint/index.js.map +1 -0
- package/dist/citation/citation.d.ts +83 -0
- package/dist/citation/citation.d.ts.map +1 -0
- package/dist/citation/citation.define.d.ts +3 -0
- package/dist/citation/citation.define.d.ts.map +1 -0
- package/dist/citation/citation.define.js +5 -0
- package/dist/citation/citation.define.js.map +1 -0
- package/dist/citation/citation.definition.d.ts +3 -0
- package/dist/citation/citation.definition.d.ts.map +1 -0
- package/dist/citation/citation.definition.js +12 -0
- package/dist/citation/citation.definition.js.map +1 -0
- package/dist/citation/citation.js +87 -0
- package/dist/citation/citation.js.map +1 -0
- package/dist/citation/citation.recipe.d.ts +3 -0
- package/dist/citation/citation.recipe.d.ts.map +1 -0
- package/dist/citation/citation.recipe.js +8 -0
- package/dist/citation/citation.recipe.js.map +1 -0
- package/dist/citation/citation.recipe.styles.d.ts +2 -0
- package/dist/citation/citation.recipe.styles.d.ts.map +1 -0
- package/dist/citation/citation.recipe.styles.js +5 -0
- package/dist/citation/citation.recipe.styles.js.map +1 -0
- package/dist/citation/citation.styles.d.ts +3 -0
- package/dist/citation/citation.styles.d.ts.map +1 -0
- package/dist/citation/citation.styles.js +60 -0
- package/dist/citation/citation.styles.js.map +1 -0
- package/dist/citation/citation.template.d.ts +4 -0
- package/dist/citation/citation.template.d.ts.map +1 -0
- package/dist/citation/citation.template.js +55 -0
- package/dist/citation/citation.template.js.map +1 -0
- package/dist/citation/index.d.ts +6 -0
- package/dist/citation/index.d.ts.map +1 -0
- package/dist/citation/index.js +6 -0
- package/dist/citation/index.js.map +1 -0
- package/dist/context-picker/context-picker.d.ts +124 -0
- package/dist/context-picker/context-picker.d.ts.map +1 -0
- package/dist/context-picker/context-picker.define.d.ts +3 -0
- package/dist/context-picker/context-picker.define.d.ts.map +1 -0
- package/dist/context-picker/context-picker.define.js +5 -0
- package/dist/context-picker/context-picker.define.js.map +1 -0
- package/dist/context-picker/context-picker.definition.d.ts +3 -0
- package/dist/context-picker/context-picker.definition.d.ts.map +1 -0
- package/dist/context-picker/context-picker.definition.js +12 -0
- package/dist/context-picker/context-picker.definition.js.map +1 -0
- package/dist/context-picker/context-picker.js +133 -0
- package/dist/context-picker/context-picker.js.map +1 -0
- package/dist/context-picker/context-picker.recipe.d.ts +6 -0
- package/dist/context-picker/context-picker.recipe.d.ts.map +1 -0
- package/dist/context-picker/context-picker.recipe.js +16 -0
- package/dist/context-picker/context-picker.recipe.js.map +1 -0
- package/dist/context-picker/context-picker.recipe.styles.d.ts +2 -0
- package/dist/context-picker/context-picker.recipe.styles.d.ts.map +1 -0
- package/dist/context-picker/context-picker.recipe.styles.js +5 -0
- package/dist/context-picker/context-picker.recipe.styles.js.map +1 -0
- package/dist/context-picker/context-picker.styles.d.ts +3 -0
- package/dist/context-picker/context-picker.styles.d.ts.map +1 -0
- package/dist/context-picker/context-picker.styles.js +47 -0
- package/dist/context-picker/context-picker.styles.js.map +1 -0
- package/dist/context-picker/context-picker.template.d.ts +4 -0
- package/dist/context-picker/context-picker.template.d.ts.map +1 -0
- package/dist/context-picker/context-picker.template.js +84 -0
- package/dist/context-picker/context-picker.template.js.map +1 -0
- package/dist/context-picker/index.d.ts +5 -0
- package/dist/context-picker/index.d.ts.map +1 -0
- package/dist/context-picker/index.js +6 -0
- package/dist/context-picker/index.js.map +1 -0
- package/dist/contracts/index.d.ts +9 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +7 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/models.d.ts +852 -0
- package/dist/contracts/models.d.ts.map +1 -0
- package/dist/contracts/models.js +337 -0
- package/dist/contracts/models.js.map +1 -0
- package/dist/contracts/normalize.d.ts +48 -0
- package/dist/contracts/normalize.d.ts.map +1 -0
- package/dist/contracts/normalize.js +199 -0
- package/dist/contracts/normalize.js.map +1 -0
- package/dist/contracts/types.d.ts +253 -0
- package/dist/contracts/types.d.ts.map +1 -0
- package/dist/contracts/types.js +2 -0
- package/dist/contracts/types.js.map +1 -0
- package/dist/controllers/announcer.d.ts +37 -0
- package/dist/controllers/announcer.d.ts.map +1 -0
- package/dist/controllers/announcer.js +169 -0
- package/dist/controllers/announcer.js.map +1 -0
- package/dist/controllers/composer.d.ts +112 -0
- package/dist/controllers/composer.d.ts.map +1 -0
- package/dist/controllers/composer.js +291 -0
- package/dist/controllers/composer.js.map +1 -0
- package/dist/controllers/conversation.d.ts +106 -0
- package/dist/controllers/conversation.d.ts.map +1 -0
- package/dist/controllers/conversation.js +1151 -0
- package/dist/controllers/conversation.js.map +1 -0
- package/dist/controllers/diff.d.ts +17 -0
- package/dist/controllers/diff.d.ts.map +1 -0
- package/dist/controllers/diff.js +64 -0
- package/dist/controllers/diff.js.map +1 -0
- package/dist/controllers/document.d.ts +86 -0
- package/dist/controllers/document.d.ts.map +1 -0
- package/dist/controllers/document.js +185 -0
- package/dist/controllers/document.js.map +1 -0
- package/dist/controllers/external-store.d.ts +33 -0
- package/dist/controllers/external-store.d.ts.map +1 -0
- package/dist/controllers/external-store.js +68 -0
- package/dist/controllers/external-store.js.map +1 -0
- package/dist/controllers/index.d.ts +22 -0
- package/dist/controllers/index.d.ts.map +1 -0
- package/dist/controllers/index.js +14 -0
- package/dist/controllers/index.js.map +1 -0
- package/dist/controllers/intents.d.ts +61 -0
- package/dist/controllers/intents.d.ts.map +1 -0
- package/dist/controllers/intents.js +68 -0
- package/dist/controllers/intents.js.map +1 -0
- package/dist/controllers/transitions.d.ts +37 -0
- package/dist/controllers/transitions.d.ts.map +1 -0
- package/dist/controllers/transitions.js +106 -0
- package/dist/controllers/transitions.js.map +1 -0
- package/dist/controllers/voice.d.ts +81 -0
- package/dist/controllers/voice.d.ts.map +1 -0
- package/dist/controllers/voice.js +180 -0
- package/dist/controllers/voice.js.map +1 -0
- package/dist/conversation/conversation.d.ts +128 -0
- package/dist/conversation/conversation.d.ts.map +1 -0
- package/dist/conversation/conversation.define.d.ts +3 -0
- package/dist/conversation/conversation.define.d.ts.map +1 -0
- package/dist/conversation/conversation.define.js +5 -0
- package/dist/conversation/conversation.define.js.map +1 -0
- package/dist/conversation/conversation.definition.d.ts +3 -0
- package/dist/conversation/conversation.definition.d.ts.map +1 -0
- package/dist/conversation/conversation.definition.js +15 -0
- package/dist/conversation/conversation.definition.js.map +1 -0
- package/dist/conversation/conversation.js +327 -0
- package/dist/conversation/conversation.js.map +1 -0
- package/dist/conversation/conversation.recipe.d.ts +6 -0
- package/dist/conversation/conversation.recipe.d.ts.map +1 -0
- package/dist/conversation/conversation.recipe.js +16 -0
- package/dist/conversation/conversation.recipe.js.map +1 -0
- package/dist/conversation/conversation.recipe.styles.d.ts +2 -0
- package/dist/conversation/conversation.recipe.styles.d.ts.map +1 -0
- package/dist/conversation/conversation.recipe.styles.js +5 -0
- package/dist/conversation/conversation.recipe.styles.js.map +1 -0
- package/dist/conversation/conversation.styles.d.ts +3 -0
- package/dist/conversation/conversation.styles.d.ts.map +1 -0
- package/dist/conversation/conversation.styles.js +66 -0
- package/dist/conversation/conversation.styles.js.map +1 -0
- package/dist/conversation/conversation.template.d.ts +8 -0
- package/dist/conversation/conversation.template.d.ts.map +1 -0
- package/dist/conversation/conversation.template.js +107 -0
- package/dist/conversation/conversation.template.js.map +1 -0
- package/dist/conversation/index.d.ts +6 -0
- package/dist/conversation/index.d.ts.map +1 -0
- package/dist/conversation/index.js +6 -0
- package/dist/conversation/index.js.map +1 -0
- package/dist/events.d.ts +198 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +244 -0
- package/dist/events.js.map +1 -0
- package/dist/highlight/index.d.ts +11 -0
- package/dist/highlight/index.d.ts.map +1 -0
- package/dist/highlight/index.js +118 -0
- package/dist/highlight/index.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/inline-assist/index.d.ts +6 -0
- package/dist/inline-assist/index.d.ts.map +1 -0
- package/dist/inline-assist/index.js +6 -0
- package/dist/inline-assist/index.js.map +1 -0
- package/dist/inline-assist/inline-assist.d.ts +97 -0
- package/dist/inline-assist/inline-assist.d.ts.map +1 -0
- package/dist/inline-assist/inline-assist.define.d.ts +3 -0
- package/dist/inline-assist/inline-assist.define.d.ts.map +1 -0
- package/dist/inline-assist/inline-assist.define.js +5 -0
- package/dist/inline-assist/inline-assist.define.js.map +1 -0
- package/dist/inline-assist/inline-assist.definition.d.ts +3 -0
- package/dist/inline-assist/inline-assist.definition.d.ts.map +1 -0
- package/dist/inline-assist/inline-assist.definition.js +12 -0
- package/dist/inline-assist/inline-assist.definition.js.map +1 -0
- package/dist/inline-assist/inline-assist.js +150 -0
- package/dist/inline-assist/inline-assist.js.map +1 -0
- package/dist/inline-assist/inline-assist.recipe.d.ts +6 -0
- package/dist/inline-assist/inline-assist.recipe.d.ts.map +1 -0
- package/dist/inline-assist/inline-assist.recipe.js +15 -0
- package/dist/inline-assist/inline-assist.recipe.js.map +1 -0
- package/dist/inline-assist/inline-assist.recipe.styles.d.ts +2 -0
- package/dist/inline-assist/inline-assist.recipe.styles.d.ts.map +1 -0
- package/dist/inline-assist/inline-assist.recipe.styles.js +5 -0
- package/dist/inline-assist/inline-assist.recipe.styles.js.map +1 -0
- package/dist/inline-assist/inline-assist.styles.d.ts +3 -0
- package/dist/inline-assist/inline-assist.styles.d.ts.map +1 -0
- package/dist/inline-assist/inline-assist.styles.js +47 -0
- package/dist/inline-assist/inline-assist.styles.js.map +1 -0
- package/dist/inline-assist/inline-assist.template.d.ts +4 -0
- package/dist/inline-assist/inline-assist.template.d.ts.map +1 -0
- package/dist/inline-assist/inline-assist.template.js +57 -0
- package/dist/inline-assist/inline-assist.template.js.map +1 -0
- package/dist/internal/ai-element.recipe.d.ts +3 -0
- package/dist/internal/ai-element.recipe.d.ts.map +1 -0
- package/dist/internal/ai-element.recipe.js +8 -0
- package/dist/internal/ai-element.recipe.js.map +1 -0
- package/dist/internal/ai-element.recipe.styles.d.ts +2 -0
- package/dist/internal/ai-element.recipe.styles.d.ts.map +1 -0
- package/dist/internal/ai-element.recipe.styles.js +5 -0
- package/dist/internal/ai-element.recipe.styles.js.map +1 -0
- package/dist/internal/base.styles.d.ts +10 -0
- package/dist/internal/base.styles.d.ts.map +1 -0
- package/dist/internal/base.styles.js +98 -0
- package/dist/internal/base.styles.js.map +1 -0
- package/dist/internal/dev.d.ts +3 -0
- package/dist/internal/dev.d.ts.map +1 -0
- package/dist/internal/dev.js +3 -0
- package/dist/internal/dev.js.map +1 -0
- package/dist/internal/ids.d.ts +3 -0
- package/dist/internal/ids.d.ts.map +1 -0
- package/dist/internal/ids.js +9 -0
- package/dist/internal/ids.js.map +1 -0
- package/dist/internal/strings.d.ts +4 -0
- package/dist/internal/strings.d.ts.map +1 -0
- package/dist/internal/strings.js +7 -0
- package/dist/internal/strings.js.map +1 -0
- package/dist/markdown/index.d.ts +11 -0
- package/dist/markdown/index.d.ts.map +1 -0
- package/dist/markdown/index.js +8 -0
- package/dist/markdown/index.js.map +1 -0
- package/dist/markdown/parse.d.ts +75 -0
- package/dist/markdown/parse.d.ts.map +1 -0
- package/dist/markdown/parse.js +525 -0
- package/dist/markdown/parse.js.map +1 -0
- package/dist/markdown/render.d.ts +40 -0
- package/dist/markdown/render.d.ts.map +1 -0
- package/dist/markdown/render.js +383 -0
- package/dist/markdown/render.js.map +1 -0
- package/dist/markdown/url.d.ts +18 -0
- package/dist/markdown/url.d.ts.map +1 -0
- package/dist/markdown/url.js +48 -0
- package/dist/markdown/url.js.map +1 -0
- package/dist/message/index.d.ts +6 -0
- package/dist/message/index.d.ts.map +1 -0
- package/dist/message/index.js +6 -0
- package/dist/message/index.js.map +1 -0
- package/dist/message/message.d.ts +330 -0
- package/dist/message/message.d.ts.map +1 -0
- package/dist/message/message.define.d.ts +3 -0
- package/dist/message/message.define.d.ts.map +1 -0
- package/dist/message/message.define.js +5 -0
- package/dist/message/message.define.js.map +1 -0
- package/dist/message/message.definition.d.ts +3 -0
- package/dist/message/message.definition.d.ts.map +1 -0
- package/dist/message/message.definition.js +32 -0
- package/dist/message/message.definition.js.map +1 -0
- package/dist/message/message.js +193 -0
- package/dist/message/message.js.map +1 -0
- package/dist/message/message.recipe.d.ts +7 -0
- package/dist/message/message.recipe.d.ts.map +1 -0
- package/dist/message/message.recipe.js +17 -0
- package/dist/message/message.recipe.js.map +1 -0
- package/dist/message/message.recipe.styles.d.ts +2 -0
- package/dist/message/message.recipe.styles.d.ts.map +1 -0
- package/dist/message/message.recipe.styles.js +5 -0
- package/dist/message/message.recipe.styles.js.map +1 -0
- package/dist/message/message.styles.d.ts +3 -0
- package/dist/message/message.styles.d.ts.map +1 -0
- package/dist/message/message.styles.js +62 -0
- package/dist/message/message.styles.js.map +1 -0
- package/dist/message/message.template.d.ts +4 -0
- package/dist/message/message.template.d.ts.map +1 -0
- package/dist/message/message.template.js +161 -0
- package/dist/message/message.template.js.map +1 -0
- package/dist/message-branch/index.d.ts +5 -0
- package/dist/message-branch/index.d.ts.map +1 -0
- package/dist/message-branch/index.js +6 -0
- package/dist/message-branch/index.js.map +1 -0
- package/dist/message-branch/message-branch.d.ts +118 -0
- package/dist/message-branch/message-branch.d.ts.map +1 -0
- package/dist/message-branch/message-branch.define.d.ts +3 -0
- package/dist/message-branch/message-branch.define.d.ts.map +1 -0
- package/dist/message-branch/message-branch.define.js +5 -0
- package/dist/message-branch/message-branch.define.js.map +1 -0
- package/dist/message-branch/message-branch.definition.d.ts +3 -0
- package/dist/message-branch/message-branch.definition.d.ts.map +1 -0
- package/dist/message-branch/message-branch.definition.js +12 -0
- package/dist/message-branch/message-branch.definition.js.map +1 -0
- package/dist/message-branch/message-branch.js +54 -0
- package/dist/message-branch/message-branch.js.map +1 -0
- package/dist/message-branch/message-branch.styles.d.ts +2 -0
- package/dist/message-branch/message-branch.styles.d.ts.map +1 -0
- package/dist/message-branch/message-branch.styles.js +13 -0
- package/dist/message-branch/message-branch.styles.js.map +1 -0
- package/dist/message-branch/message-branch.template.d.ts +4 -0
- package/dist/message-branch/message-branch.template.d.ts.map +1 -0
- package/dist/message-branch/message-branch.template.js +45 -0
- package/dist/message-branch/message-branch.template.js.map +1 -0
- package/dist/model-select/index.d.ts +5 -0
- package/dist/model-select/index.d.ts.map +1 -0
- package/dist/model-select/index.js +6 -0
- package/dist/model-select/index.js.map +1 -0
- package/dist/model-select/model-select.d.ts +71 -0
- package/dist/model-select/model-select.d.ts.map +1 -0
- package/dist/model-select/model-select.define.d.ts +3 -0
- package/dist/model-select/model-select.define.d.ts.map +1 -0
- package/dist/model-select/model-select.define.js +5 -0
- package/dist/model-select/model-select.define.js.map +1 -0
- package/dist/model-select/model-select.definition.d.ts +3 -0
- package/dist/model-select/model-select.definition.d.ts.map +1 -0
- package/dist/model-select/model-select.definition.js +13 -0
- package/dist/model-select/model-select.definition.js.map +1 -0
- package/dist/model-select/model-select.js +68 -0
- package/dist/model-select/model-select.js.map +1 -0
- package/dist/model-select/model-select.styles.d.ts +3 -0
- package/dist/model-select/model-select.styles.d.ts.map +1 -0
- package/dist/model-select/model-select.styles.js +14 -0
- package/dist/model-select/model-select.styles.js.map +1 -0
- package/dist/model-select/model-select.template.d.ts +4 -0
- package/dist/model-select/model-select.template.d.ts.map +1 -0
- package/dist/model-select/model-select.template.js +39 -0
- package/dist/model-select/model-select.template.js.map +1 -0
- package/dist/prod/action-approval/action-approval.define.js +3 -0
- package/dist/prod/action-approval/action-approval.definition.js +16 -0
- package/dist/prod/action-approval/action-approval.js +133 -0
- package/dist/prod/action-approval/action-approval.recipe.js +14 -0
- package/dist/prod/action-approval/action-approval.recipe.styles.js +33 -0
- package/dist/prod/action-approval/action-approval.styles.js +68 -0
- package/dist/prod/action-approval/action-approval.template.js +71 -0
- package/dist/prod/action-approval/index.js +11 -0
- package/dist/prod/activity/activity.define.js +3 -0
- package/dist/prod/activity/activity.definition.js +14 -0
- package/dist/prod/activity/activity.js +96 -0
- package/dist/prod/activity/activity.recipe.js +9 -0
- package/dist/prod/activity/activity.recipe.styles.js +15 -0
- package/dist/prod/activity/activity.styles.js +38 -0
- package/dist/prod/activity/activity.template.js +19 -0
- package/dist/prod/activity/index.js +11 -0
- package/dist/prod/ai-label/ai-label.define.js +3 -0
- package/dist/prod/ai-label/ai-label.definition.js +14 -0
- package/dist/prod/ai-label/ai-label.js +29 -0
- package/dist/prod/ai-label/ai-label.styles.js +42 -0
- package/dist/prod/ai-label/ai-label.template.js +30 -0
- package/dist/prod/ai-label/index.js +11 -0
- package/dist/prod/announce.js +15 -0
- package/dist/prod/artifact/artifact.define.js +3 -0
- package/dist/prod/artifact/artifact.definition.js +14 -0
- package/dist/prod/artifact/artifact.js +139 -0
- package/dist/prod/artifact/artifact.recipe.js +12 -0
- package/dist/prod/artifact/artifact.recipe.styles.js +21 -0
- package/dist/prod/artifact/artifact.styles.js +66 -0
- package/dist/prod/artifact/artifact.template.js +58 -0
- package/dist/prod/artifact/index.js +11 -0
- package/dist/prod/change-review/change-review.define.js +3 -0
- package/dist/prod/change-review/change-review.definition.js +16 -0
- package/dist/prod/change-review/change-review.js +110 -0
- package/dist/prod/change-review/change-review.recipe.js +13 -0
- package/dist/prod/change-review/change-review.recipe.styles.js +24 -0
- package/dist/prod/change-review/change-review.styles.js +69 -0
- package/dist/prod/change-review/change-review.template.js +72 -0
- package/dist/prod/change-review/index.js +11 -0
- package/dist/prod/checkpoint/checkpoint.define.js +3 -0
- package/dist/prod/checkpoint/checkpoint.definition.js +16 -0
- package/dist/prod/checkpoint/checkpoint.js +101 -0
- package/dist/prod/checkpoint/checkpoint.recipe.js +12 -0
- package/dist/prod/checkpoint/checkpoint.recipe.styles.js +19 -0
- package/dist/prod/checkpoint/checkpoint.styles.js +40 -0
- package/dist/prod/checkpoint/checkpoint.template.js +49 -0
- package/dist/prod/checkpoint/index.js +11 -0
- package/dist/prod/citation/citation.define.js +3 -0
- package/dist/prod/citation/citation.definition.js +14 -0
- package/dist/prod/citation/citation.js +66 -0
- package/dist/prod/citation/citation.recipe.js +9 -0
- package/dist/prod/citation/citation.recipe.styles.js +13 -0
- package/dist/prod/citation/citation.styles.js +61 -0
- package/dist/prod/citation/citation.template.js +44 -0
- package/dist/prod/citation/index.js +12 -0
- package/dist/prod/context-picker/context-picker.define.js +3 -0
- package/dist/prod/context-picker/context-picker.definition.js +14 -0
- package/dist/prod/context-picker/context-picker.js +106 -0
- package/dist/prod/context-picker/context-picker.recipe.js +14 -0
- package/dist/prod/context-picker/context-picker.recipe.styles.js +35 -0
- package/dist/prod/context-picker/context-picker.styles.js +48 -0
- package/dist/prod/context-picker/context-picker.template.js +81 -0
- package/dist/prod/context-picker/index.js +11 -0
- package/dist/prod/contracts/index.js +35 -0
- package/dist/prod/contracts/models.js +325 -0
- package/dist/prod/contracts/normalize.js +151 -0
- package/dist/prod/contracts/types.js +0 -0
- package/dist/prod/controllers/announcer.js +136 -0
- package/dist/prod/controllers/composer.js +235 -0
- package/dist/prod/controllers/conversation.js +919 -0
- package/dist/prod/controllers/diff.js +41 -0
- package/dist/prod/controllers/document.js +128 -0
- package/dist/prod/controllers/external-store.js +49 -0
- package/dist/prod/controllers/index.js +43 -0
- package/dist/prod/controllers/intents.js +73 -0
- package/dist/prod/controllers/transitions.js +90 -0
- package/dist/prod/controllers/voice.js +134 -0
- package/dist/prod/conversation/conversation.define.js +3 -0
- package/dist/prod/conversation/conversation.definition.js +17 -0
- package/dist/prod/conversation/conversation.js +236 -0
- package/dist/prod/conversation/conversation.recipe.js +14 -0
- package/dist/prod/conversation/conversation.recipe.styles.js +37 -0
- package/dist/prod/conversation/conversation.styles.js +67 -0
- package/dist/prod/conversation/conversation.template.js +91 -0
- package/dist/prod/conversation/index.js +11 -0
- package/dist/prod/events.js +235 -0
- package/dist/prod/highlight/index.js +99 -0
- package/dist/prod/index.js +1 -0
- package/dist/prod/inline-assist/index.js +11 -0
- package/dist/prod/inline-assist/inline-assist.define.js +3 -0
- package/dist/prod/inline-assist/inline-assist.definition.js +14 -0
- package/dist/prod/inline-assist/inline-assist.js +130 -0
- package/dist/prod/inline-assist/inline-assist.recipe.js +13 -0
- package/dist/prod/inline-assist/inline-assist.recipe.styles.js +29 -0
- package/dist/prod/inline-assist/inline-assist.styles.js +48 -0
- package/dist/prod/inline-assist/inline-assist.template.js +46 -0
- package/dist/prod/internal/ai-element.recipe.js +9 -0
- package/dist/prod/internal/ai-element.recipe.styles.js +15 -0
- package/dist/prod/internal/base.styles.js +94 -0
- package/dist/prod/internal/dev.js +4 -0
- package/dist/prod/internal/ids.js +8 -0
- package/dist/prod/internal/strings.js +12 -0
- package/dist/prod/markdown/index.js +13 -0
- package/dist/prod/markdown/parse.js +363 -0
- package/dist/prod/markdown/render.js +273 -0
- package/dist/prod/markdown/url.js +42 -0
- package/dist/prod/message/index.js +11 -0
- package/dist/prod/message/message.define.js +3 -0
- package/dist/prod/message/message.definition.js +34 -0
- package/dist/prod/message/message.js +158 -0
- package/dist/prod/message/message.recipe.js +14 -0
- package/dist/prod/message/message.recipe.styles.js +33 -0
- package/dist/prod/message/message.styles.js +63 -0
- package/dist/prod/message/message.template.js +136 -0
- package/dist/prod/message-branch/index.js +11 -0
- package/dist/prod/message-branch/message-branch.define.js +3 -0
- package/dist/prod/message-branch/message-branch.definition.js +14 -0
- package/dist/prod/message-branch/message-branch.js +41 -0
- package/dist/prod/message-branch/message-branch.styles.js +15 -0
- package/dist/prod/message-branch/message-branch.template.js +45 -0
- package/dist/prod/model-select/index.js +11 -0
- package/dist/prod/model-select/model-select.define.js +3 -0
- package/dist/prod/model-select/model-select.definition.js +15 -0
- package/dist/prod/model-select/model-select.js +46 -0
- package/dist/prod/model-select/model-select.styles.js +15 -0
- package/dist/prod/model-select/model-select.template.js +39 -0
- package/dist/prod/prompt-input/index.js +11 -0
- package/dist/prod/prompt-input/prompt-input.define.js +3 -0
- package/dist/prod/prompt-input/prompt-input.definition.js +16 -0
- package/dist/prod/prompt-input/prompt-input.js +285 -0
- package/dist/prod/prompt-input/prompt-input.recipe.js +14 -0
- package/dist/prod/prompt-input/prompt-input.recipe.styles.js +37 -0
- package/dist/prod/prompt-input/prompt-input.styles.js +93 -0
- package/dist/prod/prompt-input/prompt-input.template.js +104 -0
- package/dist/prod/question/index.js +11 -0
- package/dist/prod/question/question.define.js +3 -0
- package/dist/prod/question/question.definition.js +16 -0
- package/dist/prod/question/question.js +120 -0
- package/dist/prod/question/question.recipe.js +14 -0
- package/dist/prod/question/question.recipe.styles.js +33 -0
- package/dist/prod/question/question.styles.js +50 -0
- package/dist/prod/question/question.template.js +74 -0
- package/dist/prod/response/index.js +11 -0
- package/dist/prod/response/response.define.js +3 -0
- package/dist/prod/response/response.definition.js +16 -0
- package/dist/prod/response/response.js +135 -0
- package/dist/prod/response/response.styles.js +140 -0
- package/dist/prod/response/response.template.js +12 -0
- package/dist/prod/response-feedback/index.js +11 -0
- package/dist/prod/response-feedback/response-feedback.define.js +3 -0
- package/dist/prod/response-feedback/response-feedback.definition.js +16 -0
- package/dist/prod/response-feedback/response-feedback.js +105 -0
- package/dist/prod/response-feedback/response-feedback.recipe.js +14 -0
- package/dist/prod/response-feedback/response-feedback.recipe.styles.js +33 -0
- package/dist/prod/response-feedback/response-feedback.styles.js +43 -0
- package/dist/prod/response-feedback/response-feedback.template.js +57 -0
- package/dist/prod/sources/index.js +11 -0
- package/dist/prod/sources/sources.define.js +3 -0
- package/dist/prod/sources/sources.definition.js +14 -0
- package/dist/prod/sources/sources.js +37 -0
- package/dist/prod/sources/sources.recipe.js +9 -0
- package/dist/prod/sources/sources.recipe.styles.js +19 -0
- package/dist/prod/sources/sources.styles.js +37 -0
- package/dist/prod/sources/sources.template.js +40 -0
- package/dist/prod/stream/index.js +16 -0
- package/dist/prod/stream/simulation.js +198 -0
- package/dist/prod/stream/sse.js +105 -0
- package/dist/prod/stream/ui-message-stream.js +371 -0
- package/dist/prod/suggestions/index.js +11 -0
- package/dist/prod/suggestions/suggestions.define.js +3 -0
- package/dist/prod/suggestions/suggestions.definition.js +14 -0
- package/dist/prod/suggestions/suggestions.js +48 -0
- package/dist/prod/suggestions/suggestions.recipe.js +9 -0
- package/dist/prod/suggestions/suggestions.recipe.styles.js +15 -0
- package/dist/prod/suggestions/suggestions.styles.js +52 -0
- package/dist/prod/suggestions/suggestions.template.js +38 -0
- package/dist/prod/task-plan/index.js +11 -0
- package/dist/prod/task-plan/task-plan.define.js +3 -0
- package/dist/prod/task-plan/task-plan.definition.js +14 -0
- package/dist/prod/task-plan/task-plan.js +63 -0
- package/dist/prod/task-plan/task-plan.recipe.js +17 -0
- package/dist/prod/task-plan/task-plan.recipe.styles.js +55 -0
- package/dist/prod/task-plan/task-plan.styles.js +53 -0
- package/dist/prod/task-plan/task-plan.template.js +58 -0
- package/dist/prod/tool-call/index.js +11 -0
- package/dist/prod/tool-call/tool-call.define.js +3 -0
- package/dist/prod/tool-call/tool-call.definition.js +16 -0
- package/dist/prod/tool-call/tool-call.js +57 -0
- package/dist/prod/tool-call/tool-call.recipe.js +13 -0
- package/dist/prod/tool-call/tool-call.recipe.styles.js +29 -0
- package/dist/prod/tool-call/tool-call.styles.js +55 -0
- package/dist/prod/tool-call/tool-call.template.js +46 -0
- package/dist/prod/transcript/index.js +11 -0
- package/dist/prod/transcript/transcript.define.js +3 -0
- package/dist/prod/transcript/transcript.definition.js +14 -0
- package/dist/prod/transcript/transcript.js +32 -0
- package/dist/prod/transcript/transcript.recipe.js +9 -0
- package/dist/prod/transcript/transcript.recipe.styles.js +13 -0
- package/dist/prod/transcript/transcript.styles.js +30 -0
- package/dist/prod/transcript/transcript.template.js +26 -0
- package/dist/prod/usage-meter/index.js +11 -0
- package/dist/prod/usage-meter/usage-meter.define.js +3 -0
- package/dist/prod/usage-meter/usage-meter.definition.js +14 -0
- package/dist/prod/usage-meter/usage-meter.js +41 -0
- package/dist/prod/usage-meter/usage-meter.recipe.js +9 -0
- package/dist/prod/usage-meter/usage-meter.recipe.styles.js +13 -0
- package/dist/prod/usage-meter/usage-meter.styles.js +37 -0
- package/dist/prod/usage-meter/usage-meter.template.js +27 -0
- package/dist/prod/voice/recorder.js +39 -0
- package/dist/prod/voice/web-speech.js +67 -0
- package/dist/prod/voice-input/index.js +11 -0
- package/dist/prod/voice-input/voice-input.define.js +3 -0
- package/dist/prod/voice-input/voice-input.definition.js +16 -0
- package/dist/prod/voice-input/voice-input.js +92 -0
- package/dist/prod/voice-input/voice-input.recipe.js +9 -0
- package/dist/prod/voice-input/voice-input.recipe.styles.js +13 -0
- package/dist/prod/voice-input/voice-input.styles.js +52 -0
- package/dist/prod/voice-input/voice-input.template.js +47 -0
- package/dist/prompt-input/index.d.ts +5 -0
- package/dist/prompt-input/index.d.ts.map +1 -0
- package/dist/prompt-input/index.js +6 -0
- package/dist/prompt-input/index.js.map +1 -0
- package/dist/prompt-input/prompt-input.d.ts +241 -0
- package/dist/prompt-input/prompt-input.d.ts.map +1 -0
- package/dist/prompt-input/prompt-input.define.d.ts +3 -0
- package/dist/prompt-input/prompt-input.define.d.ts.map +1 -0
- package/dist/prompt-input/prompt-input.define.js +5 -0
- package/dist/prompt-input/prompt-input.define.js.map +1 -0
- package/dist/prompt-input/prompt-input.definition.d.ts +3 -0
- package/dist/prompt-input/prompt-input.definition.d.ts.map +1 -0
- package/dist/prompt-input/prompt-input.definition.js +14 -0
- package/dist/prompt-input/prompt-input.definition.js.map +1 -0
- package/dist/prompt-input/prompt-input.js +358 -0
- package/dist/prompt-input/prompt-input.js.map +1 -0
- package/dist/prompt-input/prompt-input.recipe.d.ts +7 -0
- package/dist/prompt-input/prompt-input.recipe.d.ts.map +1 -0
- package/dist/prompt-input/prompt-input.recipe.js +17 -0
- package/dist/prompt-input/prompt-input.recipe.js.map +1 -0
- package/dist/prompt-input/prompt-input.recipe.styles.d.ts +2 -0
- package/dist/prompt-input/prompt-input.recipe.styles.d.ts.map +1 -0
- package/dist/prompt-input/prompt-input.recipe.styles.js +5 -0
- package/dist/prompt-input/prompt-input.recipe.styles.js.map +1 -0
- package/dist/prompt-input/prompt-input.styles.d.ts +3 -0
- package/dist/prompt-input/prompt-input.styles.d.ts.map +1 -0
- package/dist/prompt-input/prompt-input.styles.js +92 -0
- package/dist/prompt-input/prompt-input.styles.js.map +1 -0
- package/dist/prompt-input/prompt-input.template.d.ts +7 -0
- package/dist/prompt-input/prompt-input.template.d.ts.map +1 -0
- package/dist/prompt-input/prompt-input.template.js +129 -0
- package/dist/prompt-input/prompt-input.template.js.map +1 -0
- package/dist/question/index.d.ts +5 -0
- package/dist/question/index.d.ts.map +1 -0
- package/dist/question/index.js +6 -0
- package/dist/question/index.js.map +1 -0
- package/dist/question/question.d.ts +115 -0
- package/dist/question/question.d.ts.map +1 -0
- package/dist/question/question.define.d.ts +3 -0
- package/dist/question/question.define.d.ts.map +1 -0
- package/dist/question/question.define.js +5 -0
- package/dist/question/question.define.js.map +1 -0
- package/dist/question/question.definition.d.ts +3 -0
- package/dist/question/question.definition.d.ts.map +1 -0
- package/dist/question/question.definition.js +14 -0
- package/dist/question/question.definition.js.map +1 -0
- package/dist/question/question.js +162 -0
- package/dist/question/question.js.map +1 -0
- package/dist/question/question.recipe.d.ts +6 -0
- package/dist/question/question.recipe.d.ts.map +1 -0
- package/dist/question/question.recipe.js +16 -0
- package/dist/question/question.recipe.js.map +1 -0
- package/dist/question/question.recipe.styles.d.ts +2 -0
- package/dist/question/question.recipe.styles.d.ts.map +1 -0
- package/dist/question/question.recipe.styles.js +5 -0
- package/dist/question/question.recipe.styles.js.map +1 -0
- package/dist/question/question.styles.d.ts +3 -0
- package/dist/question/question.styles.d.ts.map +1 -0
- package/dist/question/question.styles.js +49 -0
- package/dist/question/question.styles.js.map +1 -0
- package/dist/question/question.template.d.ts +4 -0
- package/dist/question/question.template.d.ts.map +1 -0
- package/dist/question/question.template.js +101 -0
- package/dist/question/question.template.js.map +1 -0
- package/dist/response/index.d.ts +6 -0
- package/dist/response/index.d.ts.map +1 -0
- package/dist/response/index.js +6 -0
- package/dist/response/index.js.map +1 -0
- package/dist/response/response.d.ts +90 -0
- package/dist/response/response.d.ts.map +1 -0
- package/dist/response/response.define.d.ts +3 -0
- package/dist/response/response.define.d.ts.map +1 -0
- package/dist/response/response.define.js +5 -0
- package/dist/response/response.define.js.map +1 -0
- package/dist/response/response.definition.d.ts +3 -0
- package/dist/response/response.definition.d.ts.map +1 -0
- package/dist/response/response.definition.js +14 -0
- package/dist/response/response.definition.js.map +1 -0
- package/dist/response/response.js +188 -0
- package/dist/response/response.js.map +1 -0
- package/dist/response/response.styles.d.ts +3 -0
- package/dist/response/response.styles.d.ts.map +1 -0
- package/dist/response/response.styles.js +139 -0
- package/dist/response/response.styles.js.map +1 -0
- package/dist/response/response.template.d.ts +7 -0
- package/dist/response/response.template.d.ts.map +1 -0
- package/dist/response/response.template.js +24 -0
- package/dist/response/response.template.js.map +1 -0
- package/dist/response-feedback/index.d.ts +5 -0
- package/dist/response-feedback/index.d.ts.map +1 -0
- package/dist/response-feedback/index.js +6 -0
- package/dist/response-feedback/index.js.map +1 -0
- package/dist/response-feedback/response-feedback.d.ts +92 -0
- package/dist/response-feedback/response-feedback.d.ts.map +1 -0
- package/dist/response-feedback/response-feedback.define.d.ts +3 -0
- package/dist/response-feedback/response-feedback.define.d.ts.map +1 -0
- package/dist/response-feedback/response-feedback.define.js +5 -0
- package/dist/response-feedback/response-feedback.define.js.map +1 -0
- package/dist/response-feedback/response-feedback.definition.d.ts +3 -0
- package/dist/response-feedback/response-feedback.definition.d.ts.map +1 -0
- package/dist/response-feedback/response-feedback.definition.js +14 -0
- package/dist/response-feedback/response-feedback.definition.js.map +1 -0
- package/dist/response-feedback/response-feedback.js +129 -0
- package/dist/response-feedback/response-feedback.js.map +1 -0
- package/dist/response-feedback/response-feedback.recipe.d.ts +6 -0
- package/dist/response-feedback/response-feedback.recipe.d.ts.map +1 -0
- package/dist/response-feedback/response-feedback.recipe.js +16 -0
- package/dist/response-feedback/response-feedback.recipe.js.map +1 -0
- package/dist/response-feedback/response-feedback.recipe.styles.d.ts +2 -0
- package/dist/response-feedback/response-feedback.recipe.styles.d.ts.map +1 -0
- package/dist/response-feedback/response-feedback.recipe.styles.js +5 -0
- package/dist/response-feedback/response-feedback.recipe.styles.js.map +1 -0
- package/dist/response-feedback/response-feedback.styles.d.ts +3 -0
- package/dist/response-feedback/response-feedback.styles.d.ts.map +1 -0
- package/dist/response-feedback/response-feedback.styles.js +42 -0
- package/dist/response-feedback/response-feedback.styles.js.map +1 -0
- package/dist/response-feedback/response-feedback.template.d.ts +4 -0
- package/dist/response-feedback/response-feedback.template.d.ts.map +1 -0
- package/dist/response-feedback/response-feedback.template.js +70 -0
- package/dist/response-feedback/response-feedback.template.js.map +1 -0
- package/dist/sources/index.d.ts +5 -0
- package/dist/sources/index.d.ts.map +1 -0
- package/dist/sources/index.js +6 -0
- package/dist/sources/index.js.map +1 -0
- package/dist/sources/sources.d.ts +53 -0
- package/dist/sources/sources.d.ts.map +1 -0
- package/dist/sources/sources.define.d.ts +3 -0
- package/dist/sources/sources.define.d.ts.map +1 -0
- package/dist/sources/sources.define.js +5 -0
- package/dist/sources/sources.define.js.map +1 -0
- package/dist/sources/sources.definition.d.ts +3 -0
- package/dist/sources/sources.definition.d.ts.map +1 -0
- package/dist/sources/sources.definition.js +12 -0
- package/dist/sources/sources.definition.js.map +1 -0
- package/dist/sources/sources.js +51 -0
- package/dist/sources/sources.js.map +1 -0
- package/dist/sources/sources.recipe.d.ts +3 -0
- package/dist/sources/sources.recipe.d.ts.map +1 -0
- package/dist/sources/sources.recipe.js +8 -0
- package/dist/sources/sources.recipe.js.map +1 -0
- package/dist/sources/sources.recipe.styles.d.ts +2 -0
- package/dist/sources/sources.recipe.styles.d.ts.map +1 -0
- package/dist/sources/sources.recipe.styles.js +5 -0
- package/dist/sources/sources.recipe.styles.js.map +1 -0
- package/dist/sources/sources.styles.d.ts +3 -0
- package/dist/sources/sources.styles.d.ts.map +1 -0
- package/dist/sources/sources.styles.js +36 -0
- package/dist/sources/sources.styles.js.map +1 -0
- package/dist/sources/sources.template.d.ts +4 -0
- package/dist/sources/sources.template.d.ts.map +1 -0
- package/dist/sources/sources.template.js +43 -0
- package/dist/sources/sources.template.js.map +1 -0
- package/dist/stream/index.d.ts +11 -0
- package/dist/stream/index.d.ts.map +1 -0
- package/dist/stream/index.js +8 -0
- package/dist/stream/index.js.map +1 -0
- package/dist/stream/simulation.d.ts +58 -0
- package/dist/stream/simulation.d.ts.map +1 -0
- package/dist/stream/simulation.js +257 -0
- package/dist/stream/simulation.js.map +1 -0
- package/dist/stream/sse.d.ts +32 -0
- package/dist/stream/sse.d.ts.map +1 -0
- package/dist/stream/sse.js +155 -0
- package/dist/stream/sse.js.map +1 -0
- package/dist/stream/ui-message-stream.d.ts +72 -0
- package/dist/stream/ui-message-stream.d.ts.map +1 -0
- package/dist/stream/ui-message-stream.js +492 -0
- package/dist/stream/ui-message-stream.js.map +1 -0
- package/dist/suggestions/index.d.ts +5 -0
- package/dist/suggestions/index.d.ts.map +1 -0
- package/dist/suggestions/index.js +6 -0
- package/dist/suggestions/index.js.map +1 -0
- package/dist/suggestions/suggestions.d.ts +59 -0
- package/dist/suggestions/suggestions.d.ts.map +1 -0
- package/dist/suggestions/suggestions.define.d.ts +3 -0
- package/dist/suggestions/suggestions.define.d.ts.map +1 -0
- package/dist/suggestions/suggestions.define.js +5 -0
- package/dist/suggestions/suggestions.define.js.map +1 -0
- package/dist/suggestions/suggestions.definition.d.ts +3 -0
- package/dist/suggestions/suggestions.definition.d.ts.map +1 -0
- package/dist/suggestions/suggestions.definition.js +12 -0
- package/dist/suggestions/suggestions.definition.js.map +1 -0
- package/dist/suggestions/suggestions.js +61 -0
- package/dist/suggestions/suggestions.js.map +1 -0
- package/dist/suggestions/suggestions.recipe.d.ts +3 -0
- package/dist/suggestions/suggestions.recipe.d.ts.map +1 -0
- package/dist/suggestions/suggestions.recipe.js +8 -0
- package/dist/suggestions/suggestions.recipe.js.map +1 -0
- package/dist/suggestions/suggestions.recipe.styles.d.ts +2 -0
- package/dist/suggestions/suggestions.recipe.styles.d.ts.map +1 -0
- package/dist/suggestions/suggestions.recipe.styles.js +5 -0
- package/dist/suggestions/suggestions.recipe.styles.js.map +1 -0
- package/dist/suggestions/suggestions.styles.d.ts +3 -0
- package/dist/suggestions/suggestions.styles.d.ts.map +1 -0
- package/dist/suggestions/suggestions.styles.js +51 -0
- package/dist/suggestions/suggestions.styles.js.map +1 -0
- package/dist/suggestions/suggestions.template.d.ts +4 -0
- package/dist/suggestions/suggestions.template.d.ts.map +1 -0
- package/dist/suggestions/suggestions.template.js +40 -0
- package/dist/suggestions/suggestions.template.js.map +1 -0
- package/dist/task-plan/index.d.ts +5 -0
- package/dist/task-plan/index.d.ts.map +1 -0
- package/dist/task-plan/index.js +6 -0
- package/dist/task-plan/index.js.map +1 -0
- package/dist/task-plan/task-plan.d.ts +93 -0
- package/dist/task-plan/task-plan.d.ts.map +1 -0
- package/dist/task-plan/task-plan.define.d.ts +3 -0
- package/dist/task-plan/task-plan.define.d.ts.map +1 -0
- package/dist/task-plan/task-plan.define.js +5 -0
- package/dist/task-plan/task-plan.define.js.map +1 -0
- package/dist/task-plan/task-plan.definition.d.ts +3 -0
- package/dist/task-plan/task-plan.definition.d.ts.map +1 -0
- package/dist/task-plan/task-plan.definition.js +12 -0
- package/dist/task-plan/task-plan.definition.js.map +1 -0
- package/dist/task-plan/task-plan.js +78 -0
- package/dist/task-plan/task-plan.js.map +1 -0
- package/dist/task-plan/task-plan.recipe.d.ts +7 -0
- package/dist/task-plan/task-plan.recipe.d.ts.map +1 -0
- package/dist/task-plan/task-plan.recipe.js +20 -0
- package/dist/task-plan/task-plan.recipe.js.map +1 -0
- package/dist/task-plan/task-plan.recipe.styles.d.ts +2 -0
- package/dist/task-plan/task-plan.recipe.styles.d.ts.map +1 -0
- package/dist/task-plan/task-plan.recipe.styles.js +5 -0
- package/dist/task-plan/task-plan.recipe.styles.js.map +1 -0
- package/dist/task-plan/task-plan.styles.d.ts +3 -0
- package/dist/task-plan/task-plan.styles.d.ts.map +1 -0
- package/dist/task-plan/task-plan.styles.js +52 -0
- package/dist/task-plan/task-plan.styles.js.map +1 -0
- package/dist/task-plan/task-plan.template.d.ts +4 -0
- package/dist/task-plan/task-plan.template.d.ts.map +1 -0
- package/dist/task-plan/task-plan.template.js +63 -0
- package/dist/task-plan/task-plan.template.js.map +1 -0
- package/dist/tool-call/index.d.ts +6 -0
- package/dist/tool-call/index.d.ts.map +1 -0
- package/dist/tool-call/index.js +6 -0
- package/dist/tool-call/index.js.map +1 -0
- package/dist/tool-call/tool-call.d.ts +187 -0
- package/dist/tool-call/tool-call.d.ts.map +1 -0
- package/dist/tool-call/tool-call.define.d.ts +3 -0
- package/dist/tool-call/tool-call.define.d.ts.map +1 -0
- package/dist/tool-call/tool-call.define.js +5 -0
- package/dist/tool-call/tool-call.define.js.map +1 -0
- package/dist/tool-call/tool-call.definition.d.ts +3 -0
- package/dist/tool-call/tool-call.definition.d.ts.map +1 -0
- package/dist/tool-call/tool-call.definition.js +14 -0
- package/dist/tool-call/tool-call.definition.js.map +1 -0
- package/dist/tool-call/tool-call.js +77 -0
- package/dist/tool-call/tool-call.js.map +1 -0
- package/dist/tool-call/tool-call.recipe.d.ts +7 -0
- package/dist/tool-call/tool-call.recipe.d.ts.map +1 -0
- package/dist/tool-call/tool-call.recipe.js +16 -0
- package/dist/tool-call/tool-call.recipe.js.map +1 -0
- package/dist/tool-call/tool-call.recipe.styles.d.ts +2 -0
- package/dist/tool-call/tool-call.recipe.styles.d.ts.map +1 -0
- package/dist/tool-call/tool-call.recipe.styles.js +5 -0
- package/dist/tool-call/tool-call.recipe.styles.js.map +1 -0
- package/dist/tool-call/tool-call.styles.d.ts +3 -0
- package/dist/tool-call/tool-call.styles.d.ts.map +1 -0
- package/dist/tool-call/tool-call.styles.js +54 -0
- package/dist/tool-call/tool-call.styles.js.map +1 -0
- package/dist/tool-call/tool-call.template.d.ts +4 -0
- package/dist/tool-call/tool-call.template.d.ts.map +1 -0
- package/dist/tool-call/tool-call.template.js +54 -0
- package/dist/tool-call/tool-call.template.js.map +1 -0
- package/dist/transcript/index.d.ts +5 -0
- package/dist/transcript/index.d.ts.map +1 -0
- package/dist/transcript/index.js +6 -0
- package/dist/transcript/index.js.map +1 -0
- package/dist/transcript/transcript.d.ts +55 -0
- package/dist/transcript/transcript.d.ts.map +1 -0
- package/dist/transcript/transcript.define.d.ts +3 -0
- package/dist/transcript/transcript.define.d.ts.map +1 -0
- package/dist/transcript/transcript.define.js +5 -0
- package/dist/transcript/transcript.define.js.map +1 -0
- package/dist/transcript/transcript.definition.d.ts +3 -0
- package/dist/transcript/transcript.definition.d.ts.map +1 -0
- package/dist/transcript/transcript.definition.js +12 -0
- package/dist/transcript/transcript.definition.js.map +1 -0
- package/dist/transcript/transcript.js +43 -0
- package/dist/transcript/transcript.js.map +1 -0
- package/dist/transcript/transcript.recipe.d.ts +3 -0
- package/dist/transcript/transcript.recipe.d.ts.map +1 -0
- package/dist/transcript/transcript.recipe.js +8 -0
- package/dist/transcript/transcript.recipe.js.map +1 -0
- package/dist/transcript/transcript.recipe.styles.d.ts +2 -0
- package/dist/transcript/transcript.recipe.styles.d.ts.map +1 -0
- package/dist/transcript/transcript.recipe.styles.js +5 -0
- package/dist/transcript/transcript.recipe.styles.js.map +1 -0
- package/dist/transcript/transcript.styles.d.ts +3 -0
- package/dist/transcript/transcript.styles.d.ts.map +1 -0
- package/dist/transcript/transcript.styles.js +29 -0
- package/dist/transcript/transcript.styles.js.map +1 -0
- package/dist/transcript/transcript.template.d.ts +4 -0
- package/dist/transcript/transcript.template.d.ts.map +1 -0
- package/dist/transcript/transcript.template.js +34 -0
- package/dist/transcript/transcript.template.js.map +1 -0
- package/dist/usage-meter/index.d.ts +5 -0
- package/dist/usage-meter/index.d.ts.map +1 -0
- package/dist/usage-meter/index.js +6 -0
- package/dist/usage-meter/index.js.map +1 -0
- package/dist/usage-meter/usage-meter.d.ts +56 -0
- package/dist/usage-meter/usage-meter.d.ts.map +1 -0
- package/dist/usage-meter/usage-meter.define.d.ts +3 -0
- package/dist/usage-meter/usage-meter.define.d.ts.map +1 -0
- package/dist/usage-meter/usage-meter.define.js +5 -0
- package/dist/usage-meter/usage-meter.define.js.map +1 -0
- package/dist/usage-meter/usage-meter.definition.d.ts +3 -0
- package/dist/usage-meter/usage-meter.definition.d.ts.map +1 -0
- package/dist/usage-meter/usage-meter.definition.js +12 -0
- package/dist/usage-meter/usage-meter.definition.js.map +1 -0
- package/dist/usage-meter/usage-meter.js +56 -0
- package/dist/usage-meter/usage-meter.js.map +1 -0
- package/dist/usage-meter/usage-meter.recipe.d.ts +6 -0
- package/dist/usage-meter/usage-meter.recipe.d.ts.map +1 -0
- package/dist/usage-meter/usage-meter.recipe.js +11 -0
- package/dist/usage-meter/usage-meter.recipe.js.map +1 -0
- package/dist/usage-meter/usage-meter.recipe.styles.d.ts +2 -0
- package/dist/usage-meter/usage-meter.recipe.styles.d.ts.map +1 -0
- package/dist/usage-meter/usage-meter.recipe.styles.js +5 -0
- package/dist/usage-meter/usage-meter.recipe.styles.js.map +1 -0
- package/dist/usage-meter/usage-meter.styles.d.ts +3 -0
- package/dist/usage-meter/usage-meter.styles.d.ts.map +1 -0
- package/dist/usage-meter/usage-meter.styles.js +36 -0
- package/dist/usage-meter/usage-meter.styles.js.map +1 -0
- package/dist/usage-meter/usage-meter.template.d.ts +4 -0
- package/dist/usage-meter/usage-meter.template.d.ts.map +1 -0
- package/dist/usage-meter/usage-meter.template.js +31 -0
- package/dist/usage-meter/usage-meter.template.js.map +1 -0
- package/dist/voice/recorder.d.ts +13 -0
- package/dist/voice/recorder.d.ts.map +1 -0
- package/dist/voice/recorder.js +86 -0
- package/dist/voice/recorder.js.map +1 -0
- package/dist/voice/web-speech.d.ts +10 -0
- package/dist/voice/web-speech.d.ts.map +1 -0
- package/dist/voice/web-speech.js +88 -0
- package/dist/voice/web-speech.js.map +1 -0
- package/dist/voice-input/index.d.ts +5 -0
- package/dist/voice-input/index.d.ts.map +1 -0
- package/dist/voice-input/index.js +6 -0
- package/dist/voice-input/index.js.map +1 -0
- package/dist/voice-input/voice-input.d.ts +88 -0
- package/dist/voice-input/voice-input.d.ts.map +1 -0
- package/dist/voice-input/voice-input.define.d.ts +3 -0
- package/dist/voice-input/voice-input.define.d.ts.map +1 -0
- package/dist/voice-input/voice-input.define.js +5 -0
- package/dist/voice-input/voice-input.define.js.map +1 -0
- package/dist/voice-input/voice-input.definition.d.ts +3 -0
- package/dist/voice-input/voice-input.definition.d.ts.map +1 -0
- package/dist/voice-input/voice-input.definition.js +14 -0
- package/dist/voice-input/voice-input.definition.js.map +1 -0
- package/dist/voice-input/voice-input.js +128 -0
- package/dist/voice-input/voice-input.js.map +1 -0
- package/dist/voice-input/voice-input.recipe.d.ts +3 -0
- package/dist/voice-input/voice-input.recipe.d.ts.map +1 -0
- package/dist/voice-input/voice-input.recipe.js +8 -0
- package/dist/voice-input/voice-input.recipe.js.map +1 -0
- package/dist/voice-input/voice-input.recipe.styles.d.ts +2 -0
- package/dist/voice-input/voice-input.recipe.styles.d.ts.map +1 -0
- package/dist/voice-input/voice-input.recipe.styles.js +5 -0
- package/dist/voice-input/voice-input.recipe.styles.js.map +1 -0
- package/dist/voice-input/voice-input.styles.d.ts +3 -0
- package/dist/voice-input/voice-input.styles.d.ts.map +1 -0
- package/dist/voice-input/voice-input.styles.js +51 -0
- package/dist/voice-input/voice-input.styles.js.map +1 -0
- package/dist/voice-input/voice-input.template.d.ts +4 -0
- package/dist/voice-input/voice-input.template.d.ts.map +1 -0
- package/dist/voice-input/voice-input.template.js +51 -0
- package/dist/voice-input/voice-input.template.js.map +1 -0
- package/oddkin.metadata.json +13579 -0
- package/package.json +330 -4
- package/schemas/oddkin.ai.approval.v1.schema.json +117 -0
- package/schemas/oddkin.ai.artifact.v1.schema.json +69 -0
- package/schemas/oddkin.ai.checkpoint.v1.schema.json +75 -0
- package/schemas/oddkin.ai.context-item.v1.schema.json +84 -0
- package/schemas/oddkin.ai.conversation.v1.schema.json +633 -0
- package/schemas/oddkin.ai.feedback.v1.schema.json +62 -0
- package/schemas/oddkin.ai.message.v1.schema.json +339 -0
- package/schemas/oddkin.ai.model-option.v1.schema.json +41 -0
- package/schemas/oddkin.ai.plan.v1.schema.json +98 -0
- package/schemas/oddkin.ai.question.v1.schema.json +140 -0
- package/schemas/oddkin.ai.suggestion.v1.schema.json +26 -0
- package/schemas/oddkin.ai.tool-call.v1.schema.json +87 -0
- package/schemas/oddkin.ai.transcript-segment.v1.schema.json +27 -0
- package/schemas/oddkin.ai.usage.v1.schema.json +55 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const wordTokens = (text) => text.match(/\s+|[^\s]+/gu) ?? [], lineTokens = (text) => text.match(/[^\n]*\n|[^\n]+$/gu) ?? [];
|
|
2
|
+
function diffTokens(before, after, maxCells = 25e4) {
|
|
3
|
+
let start = 0;
|
|
4
|
+
for (; start < before.length && start < after.length && before[start] === after[start]; )
|
|
5
|
+
start++;
|
|
6
|
+
let endB = before.length, endA = after.length;
|
|
7
|
+
for (; endB > start && endA > start && before[endB - 1] === after[endA - 1]; )
|
|
8
|
+
endB--, endA--;
|
|
9
|
+
const out = [], push = (kind, text) => {
|
|
10
|
+
if (!text)
|
|
11
|
+
return;
|
|
12
|
+
const last = out[out.length - 1];
|
|
13
|
+
last?.kind === kind ? out[out.length - 1] = { kind, text: last.text + text } : out.push({ kind, text });
|
|
14
|
+
};
|
|
15
|
+
push("equal", before.slice(0, start).join(""));
|
|
16
|
+
const b = before.slice(start, endB), a = after.slice(start, endA);
|
|
17
|
+
if (b.length * a.length > maxCells)
|
|
18
|
+
push("delete", b.join("")), push("insert", a.join(""));
|
|
19
|
+
else {
|
|
20
|
+
const width = a.length + 1, lengths = new Uint32Array((b.length + 1) * width);
|
|
21
|
+
for (let i2 = b.length - 1; i2 >= 0; i2--)
|
|
22
|
+
for (let j2 = a.length - 1; j2 >= 0; j2--)
|
|
23
|
+
lengths[i2 * width + j2] = b[i2] === a[j2] ? lengths[(i2 + 1) * width + j2 + 1] + 1 : Math.max(lengths[(i2 + 1) * width + j2], lengths[i2 * width + j2 + 1]);
|
|
24
|
+
let i = 0, j = 0;
|
|
25
|
+
for (; i < b.length && j < a.length; )
|
|
26
|
+
b[i] === a[j] ? (push("equal", b[i++]), j++) : lengths[(i + 1) * width + j] >= lengths[i * width + j + 1] ? push("delete", b[i++]) : push("insert", a[j++]);
|
|
27
|
+
for (; i < b.length; )
|
|
28
|
+
push("delete", b[i++]);
|
|
29
|
+
for (; j < a.length; )
|
|
30
|
+
push("insert", a[j++]);
|
|
31
|
+
}
|
|
32
|
+
return push("equal", before.slice(endB).join("")), out;
|
|
33
|
+
}
|
|
34
|
+
const diffWords = (before, after) => diffTokens(wordTokens(before), wordTokens(after)), diffLines = (before, after) => diffTokens(lineTokens(before), lineTokens(after));
|
|
35
|
+
export {
|
|
36
|
+
diffLines,
|
|
37
|
+
diffTokens,
|
|
38
|
+
diffWords,
|
|
39
|
+
lineTokens,
|
|
40
|
+
wordTokens
|
|
41
|
+
};
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { signal } from "@oddkin/core/reactive";
|
|
2
|
+
const isHigh = (code) => code >= 55296 && code <= 56319, isLow = (code) => code >= 56320 && code <= 57343;
|
|
3
|
+
function isBoundary(text, offset) {
|
|
4
|
+
return offset <= 0 || offset >= text.length ? offset === 0 || offset === text.length : !(isHigh(text.charCodeAt(offset - 1)) && isLow(text.charCodeAt(offset)));
|
|
5
|
+
}
|
|
6
|
+
function isValidRange(text, range) {
|
|
7
|
+
return Number.isInteger(range.start) && Number.isInteger(range.end) && range.start >= 0 && range.end >= range.start && range.end <= text.length && isBoundary(text, range.start) && isBoundary(text, range.end);
|
|
8
|
+
}
|
|
9
|
+
function toCodePointOffset(text, offset) {
|
|
10
|
+
let points = 0;
|
|
11
|
+
for (let i = 0; i < offset && i < text.length; i++)
|
|
12
|
+
isLow(text.charCodeAt(i)) && i > 0 && isHigh(text.charCodeAt(i - 1)) || points++;
|
|
13
|
+
return points;
|
|
14
|
+
}
|
|
15
|
+
function fromCodePointOffset(text, points) {
|
|
16
|
+
let offset = 0;
|
|
17
|
+
for (let p = 0; p < points && offset < text.length; p++)
|
|
18
|
+
offset += isHigh(text.charCodeAt(offset)) && isLow(text.charCodeAt(offset + 1)) ? 2 : 1;
|
|
19
|
+
return offset;
|
|
20
|
+
}
|
|
21
|
+
function captureSelection(control, revision) {
|
|
22
|
+
const start = control.selectionStart ?? 0, end = control.selectionEnd ?? start;
|
|
23
|
+
if (end <= start)
|
|
24
|
+
return;
|
|
25
|
+
const range = { start, end };
|
|
26
|
+
if (isValidRange(control.value, range))
|
|
27
|
+
return { revision, start, end, text: control.value.slice(start, end) };
|
|
28
|
+
}
|
|
29
|
+
class DocumentSession {
|
|
30
|
+
#state;
|
|
31
|
+
state;
|
|
32
|
+
#counter = 0;
|
|
33
|
+
#prefix;
|
|
34
|
+
#undo = [];
|
|
35
|
+
constructor(text, options = {}) {
|
|
36
|
+
this.#prefix = options.revisionPrefix ?? "rev", this.#state = signal({ text, revision: this.#nextRevision(), proposals: [] }), this.state = this.#state;
|
|
37
|
+
}
|
|
38
|
+
getSnapshot() {
|
|
39
|
+
return this.#state.peek();
|
|
40
|
+
}
|
|
41
|
+
/** A user edit. Proposals for older revisions become stale. */
|
|
42
|
+
setText(text) {
|
|
43
|
+
const now = this.#state.peek();
|
|
44
|
+
if (text === now.text)
|
|
45
|
+
return now.revision;
|
|
46
|
+
const revision = this.#nextRevision();
|
|
47
|
+
return this.#state.value = {
|
|
48
|
+
text,
|
|
49
|
+
revision,
|
|
50
|
+
proposals: now.proposals.map((p) => p.status === "proposed" ? { ...p, status: "stale" } : p)
|
|
51
|
+
}, this.#undo.length = 0, revision;
|
|
52
|
+
}
|
|
53
|
+
/** Register a proposal from the assistant. Invalid ranges are rejected; stale ones recorded as stale. */
|
|
54
|
+
propose(proposal) {
|
|
55
|
+
const now = this.#state.peek();
|
|
56
|
+
let status = "proposed";
|
|
57
|
+
proposal.baseRevision !== now.revision ? status = "stale" : (!isValidRange(now.text, proposal.range) || now.text.slice(proposal.range.start, proposal.range.end) !== proposal.original) && (status = "failed");
|
|
58
|
+
const record = {
|
|
59
|
+
...proposal,
|
|
60
|
+
status,
|
|
61
|
+
...status === "failed" ? { error: { code: "ai.edit.range", message: "The proposal does not match the text." } } : {}
|
|
62
|
+
};
|
|
63
|
+
return this.#state.value = {
|
|
64
|
+
...now,
|
|
65
|
+
proposals: [...now.proposals.filter((p) => p.proposalId !== record.proposalId), record]
|
|
66
|
+
}, record;
|
|
67
|
+
}
|
|
68
|
+
/** Accept and apply a proposal to its base revision. */
|
|
69
|
+
accept(proposalId) {
|
|
70
|
+
const now = this.#state.peek(), proposal = now.proposals.find((p) => p.proposalId === proposalId);
|
|
71
|
+
if (!proposal)
|
|
72
|
+
return { ok: !1, reason: "not-found" };
|
|
73
|
+
if (proposal.status !== "proposed")
|
|
74
|
+
return { ok: !1, reason: proposal.status === "stale" ? "stale" : "invalid" };
|
|
75
|
+
if (proposal.baseRevision !== now.revision)
|
|
76
|
+
return this.#setStatus(proposalId, "stale"), { ok: !1, reason: "stale" };
|
|
77
|
+
if (now.text.slice(proposal.range.start, proposal.range.end) !== proposal.original)
|
|
78
|
+
return this.#setStatus(proposalId, "failed"), { ok: !1, reason: "conflict" };
|
|
79
|
+
const text = now.text.slice(0, proposal.range.start) + proposal.replacement + now.text.slice(proposal.range.end), revision = this.#nextRevision();
|
|
80
|
+
return this.#undo.push({
|
|
81
|
+
proposalId,
|
|
82
|
+
before: now.text,
|
|
83
|
+
beforeRevision: now.revision,
|
|
84
|
+
afterRevision: revision
|
|
85
|
+
}), this.#state.value = {
|
|
86
|
+
text,
|
|
87
|
+
revision,
|
|
88
|
+
proposals: now.proposals.map((p) => p.proposalId === proposalId ? { ...p, status: "applied", appliedRevision: revision } : p.status === "proposed" ? { ...p, status: "stale" } : p)
|
|
89
|
+
}, { ok: !0, revision };
|
|
90
|
+
}
|
|
91
|
+
reject(proposalId) {
|
|
92
|
+
const proposal = this.#state.peek().proposals.find((p) => p.proposalId === proposalId);
|
|
93
|
+
return proposal ? proposal.status !== "proposed" && proposal.status !== "stale" ? { ok: !1, reason: "invalid" } : (this.#setStatus(proposalId, "rejected"), { ok: !0, revision: this.#state.peek().revision }) : { ok: !1, reason: "not-found" };
|
|
94
|
+
}
|
|
95
|
+
/** Undo an applied proposal if it is the latest change and nothing changed since. */
|
|
96
|
+
undo(proposalId) {
|
|
97
|
+
const now = this.#state.peek(), last = this.#undo[this.#undo.length - 1];
|
|
98
|
+
if (!last || last.proposalId !== proposalId)
|
|
99
|
+
return { ok: !1, reason: "not-applied" };
|
|
100
|
+
if (last.afterRevision !== now.revision)
|
|
101
|
+
return { ok: !1, reason: "stale" };
|
|
102
|
+
this.#undo.pop();
|
|
103
|
+
const revision = this.#nextRevision();
|
|
104
|
+
return this.#state.value = {
|
|
105
|
+
text: last.before,
|
|
106
|
+
revision,
|
|
107
|
+
proposals: now.proposals.map((p) => p.proposalId === proposalId ? { ...p, status: "undone" } : p)
|
|
108
|
+
}, { ok: !0, revision };
|
|
109
|
+
}
|
|
110
|
+
#setStatus(proposalId, status) {
|
|
111
|
+
const now = this.#state.peek();
|
|
112
|
+
this.#state.value = {
|
|
113
|
+
...now,
|
|
114
|
+
proposals: now.proposals.map((p) => p.proposalId === proposalId ? { ...p, status } : p)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
#nextRevision() {
|
|
118
|
+
return `${this.#prefix}-${++this.#counter}`;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export {
|
|
122
|
+
DocumentSession,
|
|
123
|
+
captureSelection,
|
|
124
|
+
fromCodePointOffset,
|
|
125
|
+
isBoundary,
|
|
126
|
+
isValidRange,
|
|
127
|
+
toCodePointOffset
|
|
128
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { normalizeApproval, normalizeArtifact, normalizeMessage, normalizeToolCall } from "../contracts/normalize.js";
|
|
2
|
+
function selectSource(source, select) {
|
|
3
|
+
let input = UNSET, output;
|
|
4
|
+
const read = () => {
|
|
5
|
+
const next = source.getSnapshot();
|
|
6
|
+
return next !== input && (input = next, output = select(next)), output;
|
|
7
|
+
};
|
|
8
|
+
return {
|
|
9
|
+
getSnapshot: read,
|
|
10
|
+
subscribe(listener) {
|
|
11
|
+
let last = read();
|
|
12
|
+
return source.subscribe(() => {
|
|
13
|
+
const next = read();
|
|
14
|
+
next !== last && (last = next, listener());
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const UNSET = /* @__PURE__ */ Symbol("unset");
|
|
20
|
+
function createConversationView(input, onDiagnostic) {
|
|
21
|
+
const keep = (items, normalize, path) => {
|
|
22
|
+
const out = [];
|
|
23
|
+
return (items ?? []).forEach((item, i) => {
|
|
24
|
+
const result = normalize(item, `${path}/${i}`);
|
|
25
|
+
for (const d of result.diagnostics)
|
|
26
|
+
onDiagnostic?.(d);
|
|
27
|
+
result.value && out.push(result.value);
|
|
28
|
+
}), out;
|
|
29
|
+
}, messages = keep(input.messages, normalizeMessage, "/messages");
|
|
30
|
+
return {
|
|
31
|
+
conversationId: input.conversationId,
|
|
32
|
+
revision: input.revision ?? 0,
|
|
33
|
+
messages,
|
|
34
|
+
tools: Object.fromEntries(keep(input.tools, normalizeToolCall, "/tools").map((t) => [t.toolCallId, t])),
|
|
35
|
+
approvals: Object.fromEntries(keep(input.approvals, normalizeApproval, "/approvals").map((a) => [a.approvalId, a])),
|
|
36
|
+
artifacts: Object.fromEntries(keep(input.artifacts, normalizeArtifact, "/artifacts").map((a) => [a.artifactId, a])),
|
|
37
|
+
attempts: Object.fromEntries((input.attempts ?? []).map((a) => [a.attemptId, a])),
|
|
38
|
+
branches: input.branches ?? {},
|
|
39
|
+
activeAttemptId: input.activeAttemptId,
|
|
40
|
+
capabilities: input.capabilities,
|
|
41
|
+
history: input.history ?? (input.hasMoreHistory ? "idle" : "complete"),
|
|
42
|
+
hasMoreHistory: input.hasMoreHistory ?? !1,
|
|
43
|
+
feedback: input.feedback ?? {}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
createConversationView,
|
|
48
|
+
selectSource
|
|
49
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ConversationController } from "./conversation.js";
|
|
2
|
+
import { ComposerController, matchesAccept } from "./composer.js";
|
|
3
|
+
import { DocumentSession, captureSelection, fromCodePointOffset, isBoundary, isValidRange, toCodePointOffset } from "./document.js";
|
|
4
|
+
import { diffLines, diffTokens, diffWords, lineTokens, wordTokens } from "./diff.js";
|
|
5
|
+
import { VoiceController, createScriptedVoiceAdapter } from "./voice.js";
|
|
6
|
+
import { DEFAULT_ANNOUNCEMENTS, describeConversationChange, format } from "./announcer.js";
|
|
7
|
+
import { APPROVAL_TRANSITIONS, ATTEMPT_TRANSITIONS, CONNECTION_TRANSITIONS, TOOL_TRANSITIONS, applyStopOutcome, canTransition, isActive, isTerminal, stopAfterTerminal } from "./transitions.js";
|
|
8
|
+
import { bindIntents, controllerIntents } from "./intents.js";
|
|
9
|
+
import { createConversationView, selectSource } from "./external-store.js";
|
|
10
|
+
export {
|
|
11
|
+
APPROVAL_TRANSITIONS,
|
|
12
|
+
ATTEMPT_TRANSITIONS,
|
|
13
|
+
CONNECTION_TRANSITIONS,
|
|
14
|
+
ComposerController,
|
|
15
|
+
ConversationController,
|
|
16
|
+
DEFAULT_ANNOUNCEMENTS,
|
|
17
|
+
DocumentSession,
|
|
18
|
+
TOOL_TRANSITIONS,
|
|
19
|
+
VoiceController,
|
|
20
|
+
applyStopOutcome,
|
|
21
|
+
bindIntents,
|
|
22
|
+
canTransition,
|
|
23
|
+
captureSelection,
|
|
24
|
+
controllerIntents,
|
|
25
|
+
createConversationView,
|
|
26
|
+
createScriptedVoiceAdapter,
|
|
27
|
+
describeConversationChange,
|
|
28
|
+
diffLines,
|
|
29
|
+
diffTokens,
|
|
30
|
+
diffWords,
|
|
31
|
+
format,
|
|
32
|
+
fromCodePointOffset,
|
|
33
|
+
isActive,
|
|
34
|
+
isBoundary,
|
|
35
|
+
isTerminal,
|
|
36
|
+
isValidRange,
|
|
37
|
+
lineTokens,
|
|
38
|
+
matchesAccept,
|
|
39
|
+
selectSource,
|
|
40
|
+
stopAfterTerminal,
|
|
41
|
+
toCodePointOffset,
|
|
42
|
+
wordTokens
|
|
43
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
function bindIntents(target, handlers) {
|
|
2
|
+
const releases = [];
|
|
3
|
+
for (const [type, handler] of Object.entries(handlers)) {
|
|
4
|
+
if (typeof handler != "function")
|
|
5
|
+
continue;
|
|
6
|
+
const listener = (event) => handler(event.detail, event);
|
|
7
|
+
target.addEventListener(type, listener), releases.push(() => target.removeEventListener(type, listener));
|
|
8
|
+
}
|
|
9
|
+
return () => {
|
|
10
|
+
for (const release of releases.splice(0))
|
|
11
|
+
release();
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function controllerIntents(controller, composer, options = {}) {
|
|
15
|
+
const report = (intent) => (result) => options.onResult?.(intent, result);
|
|
16
|
+
return {
|
|
17
|
+
"odd-prompt-submit": (detail) => {
|
|
18
|
+
const files = detail.attachments.map((a) => ({
|
|
19
|
+
type: "file",
|
|
20
|
+
id: a.id,
|
|
21
|
+
name: a.name,
|
|
22
|
+
mediaType: a.mediaType,
|
|
23
|
+
size: a.size,
|
|
24
|
+
...a.url ? { url: a.url } : {}
|
|
25
|
+
}));
|
|
26
|
+
controller.send({ text: detail.text, files }).then((result) => {
|
|
27
|
+
composer && (result.ok ? composer.acknowledge(detail.submissionId) : composer.fail(detail.submissionId, result.error ?? {
|
|
28
|
+
code: `ai.send.${result.reason}`,
|
|
29
|
+
message: "The message could not be sent.",
|
|
30
|
+
retryable: !0
|
|
31
|
+
})), report("odd-prompt-submit")(result);
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
"odd-prompt-stop": (detail) => {
|
|
35
|
+
controller.stop(detail.attemptId).then(report("odd-prompt-stop"));
|
|
36
|
+
},
|
|
37
|
+
"odd-history-request": () => {
|
|
38
|
+
controller.loadHistory().then(report("odd-history-request"));
|
|
39
|
+
},
|
|
40
|
+
"odd-message-edit": (detail) => {
|
|
41
|
+
controller.edit(detail.messageId, detail.text).then(report("odd-message-edit"));
|
|
42
|
+
},
|
|
43
|
+
"odd-message-regenerate": (detail) => {
|
|
44
|
+
controller.regenerate(detail.messageId).then(report("odd-message-regenerate"));
|
|
45
|
+
},
|
|
46
|
+
"odd-attempt-retry": (detail) => {
|
|
47
|
+
controller.retry(detail.attemptId).then(report("odd-attempt-retry"));
|
|
48
|
+
},
|
|
49
|
+
"odd-attempt-resume": (detail) => {
|
|
50
|
+
controller.resume(detail.attemptId).then(report("odd-attempt-resume"));
|
|
51
|
+
},
|
|
52
|
+
"odd-branch-switch": (detail) => report("odd-branch-switch")(controller.switchBranch(detail.targetMessageId)),
|
|
53
|
+
"odd-approval-decide": (detail) => {
|
|
54
|
+
controller.decide(detail.approvalId, detail.revision, detail.decision, detail.reason).then(report("odd-approval-decide"));
|
|
55
|
+
},
|
|
56
|
+
"odd-feedback-submit": (detail) => {
|
|
57
|
+
controller.submitFeedback({
|
|
58
|
+
messageId: detail.messageId,
|
|
59
|
+
rating: detail.rating,
|
|
60
|
+
reasons: [...detail.reasons],
|
|
61
|
+
...detail.comment ? { comment: detail.comment } : {}
|
|
62
|
+
}).then(report("odd-feedback-submit"));
|
|
63
|
+
},
|
|
64
|
+
"odd-suggestion-submit": (detail) => {
|
|
65
|
+
controller.send({ text: detail.prompt }).then(report("odd-suggestion-submit"));
|
|
66
|
+
},
|
|
67
|
+
"odd-suggestion-select": (detail) => composer?.setText(detail.prompt)
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export {
|
|
71
|
+
bindIntents,
|
|
72
|
+
controllerIntents
|
|
73
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const ATTEMPT_TRANSITIONS = {
|
|
2
|
+
submitted: [
|
|
3
|
+
"accepted",
|
|
4
|
+
"streaming",
|
|
5
|
+
"awaiting-input",
|
|
6
|
+
"completed",
|
|
7
|
+
"cancelled",
|
|
8
|
+
"failed",
|
|
9
|
+
"interrupted"
|
|
10
|
+
],
|
|
11
|
+
accepted: ["streaming", "awaiting-input", "completed", "cancelled", "failed", "interrupted"],
|
|
12
|
+
streaming: ["awaiting-input", "completed", "cancelled", "failed", "interrupted"],
|
|
13
|
+
"awaiting-input": ["streaming", "completed", "cancelled", "failed", "interrupted"],
|
|
14
|
+
// A resumed stream may continue or end an interrupted attempt.
|
|
15
|
+
interrupted: ["streaming", "awaiting-input", "completed", "cancelled", "failed"],
|
|
16
|
+
completed: [],
|
|
17
|
+
cancelled: [],
|
|
18
|
+
failed: []
|
|
19
|
+
}, TOOL_TRANSITIONS = {
|
|
20
|
+
"input-streaming": ["input-available", "output-error", "cancelled"],
|
|
21
|
+
"input-available": [
|
|
22
|
+
"awaiting-approval",
|
|
23
|
+
"executing",
|
|
24
|
+
"output-available",
|
|
25
|
+
"output-error",
|
|
26
|
+
"denied",
|
|
27
|
+
"cancelled"
|
|
28
|
+
],
|
|
29
|
+
"awaiting-approval": ["executing", "output-available", "output-error", "denied", "cancelled"],
|
|
30
|
+
executing: ["output-available", "output-error", "cancelled"],
|
|
31
|
+
// A host retry runs the tool again.
|
|
32
|
+
"output-error": ["executing"],
|
|
33
|
+
"output-available": [],
|
|
34
|
+
denied: [],
|
|
35
|
+
cancelled: []
|
|
36
|
+
}, APPROVAL_TRANSITIONS = {
|
|
37
|
+
// approved/rejected directly: decided elsewhere (another client or an automatic policy).
|
|
38
|
+
requested: ["decision-pending", "approved", "rejected", "expired", "superseded"],
|
|
39
|
+
"decision-pending": ["approved", "rejected", "decision-failed", "expired", "superseded"],
|
|
40
|
+
"decision-failed": ["decision-pending", "approved", "rejected", "expired", "superseded"],
|
|
41
|
+
approved: [],
|
|
42
|
+
rejected: [],
|
|
43
|
+
expired: [],
|
|
44
|
+
superseded: []
|
|
45
|
+
}, CONNECTION_TRANSITIONS = {
|
|
46
|
+
idle: ["connecting", "open", "closed"],
|
|
47
|
+
connecting: ["open", "closed", "disconnected"],
|
|
48
|
+
open: ["closed", "disconnected"],
|
|
49
|
+
disconnected: ["reconnecting"],
|
|
50
|
+
closed: ["reconnecting"],
|
|
51
|
+
reconnecting: ["open", "closed", "disconnected"]
|
|
52
|
+
};
|
|
53
|
+
function canTransition(table, from, to) {
|
|
54
|
+
return from === to || table[from].includes(to);
|
|
55
|
+
}
|
|
56
|
+
const TERMINAL = /* @__PURE__ */ new Set(["completed", "cancelled", "failed"]), isTerminal = (status) => TERMINAL.has(status), isActive = (status) => status === "submitted" || status === "accepted" || status === "streaming" || status === "awaiting-input", TOOL_SETTLED = /* @__PURE__ */ new Set([
|
|
57
|
+
"output-available",
|
|
58
|
+
"output-error",
|
|
59
|
+
"denied",
|
|
60
|
+
"cancelled"
|
|
61
|
+
]);
|
|
62
|
+
function applyStopOutcome(status, outcome) {
|
|
63
|
+
const terminal = isTerminal(status);
|
|
64
|
+
switch (outcome) {
|
|
65
|
+
case "cancelled":
|
|
66
|
+
return terminal ? { status, stop: status === "cancelled" ? "confirmed" : "too-late" } : { status: "cancelled", stop: "confirmed" };
|
|
67
|
+
case "already-finished":
|
|
68
|
+
return { status, stop: "too-late" };
|
|
69
|
+
case "not-found":
|
|
70
|
+
case "unknown":
|
|
71
|
+
return { status, stop: "unknown" };
|
|
72
|
+
case "rejected":
|
|
73
|
+
return { status, stop: "failed" };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function stopAfterTerminal(stop, terminal) {
|
|
77
|
+
return stop !== "requested" ? stop : terminal === "cancelled" ? "confirmed" : "too-late";
|
|
78
|
+
}
|
|
79
|
+
export {
|
|
80
|
+
APPROVAL_TRANSITIONS,
|
|
81
|
+
ATTEMPT_TRANSITIONS,
|
|
82
|
+
CONNECTION_TRANSITIONS,
|
|
83
|
+
TOOL_SETTLED,
|
|
84
|
+
TOOL_TRANSITIONS,
|
|
85
|
+
applyStopOutcome,
|
|
86
|
+
canTransition,
|
|
87
|
+
isActive,
|
|
88
|
+
isTerminal,
|
|
89
|
+
stopAfterTerminal
|
|
90
|
+
};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { signal } from "@oddkin/core/reactive";
|
|
2
|
+
import { createId } from "../internal/ids.js";
|
|
3
|
+
const STATUS_FOR_ERROR = {
|
|
4
|
+
"permission-denied": "denied",
|
|
5
|
+
"no-device": "unavailable",
|
|
6
|
+
network: "error",
|
|
7
|
+
interrupted: "interrupted",
|
|
8
|
+
other: "error"
|
|
9
|
+
};
|
|
10
|
+
class VoiceController {
|
|
11
|
+
#state;
|
|
12
|
+
state;
|
|
13
|
+
#adapter;
|
|
14
|
+
#session;
|
|
15
|
+
#generation = 0;
|
|
16
|
+
constructor(adapter) {
|
|
17
|
+
this.#adapter = adapter, this.#state = signal({
|
|
18
|
+
status: adapter?.supported ? "idle" : "unsupported",
|
|
19
|
+
interim: "",
|
|
20
|
+
segments: []
|
|
21
|
+
}), this.state = this.#state;
|
|
22
|
+
}
|
|
23
|
+
getSnapshot() {
|
|
24
|
+
return this.#state.peek();
|
|
25
|
+
}
|
|
26
|
+
/** Replace the adapter; any running session is cancelled. */
|
|
27
|
+
setAdapter(adapter) {
|
|
28
|
+
this.cancel(), this.#adapter = adapter, this.#set({ status: adapter?.supported ? "idle" : "unsupported", interim: "" });
|
|
29
|
+
}
|
|
30
|
+
get active() {
|
|
31
|
+
return this.#session !== void 0;
|
|
32
|
+
}
|
|
33
|
+
start() {
|
|
34
|
+
const adapter = this.#adapter;
|
|
35
|
+
if (!adapter?.supported || this.#session)
|
|
36
|
+
return !1;
|
|
37
|
+
const generation = ++this.#generation, live = () => generation === this.#generation;
|
|
38
|
+
this.#set({ status: "requesting-permission", interim: "", error: void 0 });
|
|
39
|
+
const session = adapter.start({
|
|
40
|
+
started: () => live() && this.#set({ status: "recording" }),
|
|
41
|
+
interim: (text) => live() && this.#set({ interim: text }),
|
|
42
|
+
final: (text) => {
|
|
43
|
+
if (!live() || !text)
|
|
44
|
+
return;
|
|
45
|
+
const now = this.#state.peek();
|
|
46
|
+
this.#set({
|
|
47
|
+
interim: "",
|
|
48
|
+
segments: [...now.segments, { id: createId("segment"), text, final: !0 }]
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
processing: () => live() && this.#set({ status: "processing" }),
|
|
52
|
+
ended: (reason, error) => {
|
|
53
|
+
live() && (this.#session = void 0, this.#generation++, reason === "error" ? this.#set({
|
|
54
|
+
status: STATUS_FOR_ERROR[error ?? "other"],
|
|
55
|
+
interim: "",
|
|
56
|
+
error: error ?? "other"
|
|
57
|
+
}) : this.#set({ status: "idle", interim: "" }));
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
return live() && (this.#session = session), !0;
|
|
61
|
+
}
|
|
62
|
+
/** Finish recording and keep the final transcript. */
|
|
63
|
+
stop() {
|
|
64
|
+
this.#session?.stop();
|
|
65
|
+
}
|
|
66
|
+
/** Discard the current recording and interim text; final segments already received stay. */
|
|
67
|
+
cancel() {
|
|
68
|
+
const session = this.#session;
|
|
69
|
+
session && (this.#session = void 0, this.#generation++, session.cancel(), this.#set({ status: "idle", interim: "" }));
|
|
70
|
+
}
|
|
71
|
+
/** Replace or edit the transcript (user edits). */
|
|
72
|
+
setSegments(segments) {
|
|
73
|
+
this.#set({ segments });
|
|
74
|
+
}
|
|
75
|
+
clear() {
|
|
76
|
+
this.#set({ segments: [], interim: "" });
|
|
77
|
+
}
|
|
78
|
+
dispose() {
|
|
79
|
+
this.cancel(), this.#adapter = void 0;
|
|
80
|
+
}
|
|
81
|
+
#set(patch) {
|
|
82
|
+
this.#state.value = { ...this.#state.peek(), ...patch };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
function createScriptedVoiceAdapter(script, options = {}) {
|
|
86
|
+
let open = 0;
|
|
87
|
+
return {
|
|
88
|
+
supported: !0,
|
|
89
|
+
get openResources() {
|
|
90
|
+
return open;
|
|
91
|
+
},
|
|
92
|
+
start(handlers) {
|
|
93
|
+
const timers = /* @__PURE__ */ new Set();
|
|
94
|
+
let ended = !1;
|
|
95
|
+
open++;
|
|
96
|
+
const schedule = (ms, fn) => {
|
|
97
|
+
const id = setTimeout(() => {
|
|
98
|
+
timers.delete(id), ended || fn();
|
|
99
|
+
}, ms);
|
|
100
|
+
timers.add(id);
|
|
101
|
+
}, finish = (reason, error) => {
|
|
102
|
+
if (!ended) {
|
|
103
|
+
ended = !0;
|
|
104
|
+
for (const id of timers)
|
|
105
|
+
clearTimeout(id);
|
|
106
|
+
timers.clear(), open--, reason !== "cancelled" && handlers.ended(reason, error);
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
return schedule(options.permissionDelay ?? 0, () => {
|
|
110
|
+
if (options.denyPermission)
|
|
111
|
+
return finish("error", "permission-denied");
|
|
112
|
+
if (options.noDevice)
|
|
113
|
+
return finish("error", "no-device");
|
|
114
|
+
handlers.started();
|
|
115
|
+
let at = 0;
|
|
116
|
+
for (const step of script)
|
|
117
|
+
at += step.after, schedule(at, () => {
|
|
118
|
+
"interim" in step ? handlers.interim(step.interim) : "final" in step ? handlers.final(step.final) : finish("error", step.error);
|
|
119
|
+
});
|
|
120
|
+
}), {
|
|
121
|
+
stop() {
|
|
122
|
+
ended || (handlers.processing(), schedule(0, () => finish("stopped")));
|
|
123
|
+
},
|
|
124
|
+
cancel() {
|
|
125
|
+
finish("cancelled");
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export {
|
|
132
|
+
VoiceController,
|
|
133
|
+
createScriptedVoiceAdapter
|
|
134
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { compose } from "@oddkin/core/element";
|
|
2
|
+
import { activityDefinition } from "../activity/activity.definition.js";
|
|
3
|
+
import { aiBaseStyles } from "../internal/base.styles.js";
|
|
4
|
+
import { messageDefinition } from "../message/message.definition.js";
|
|
5
|
+
import { OddkinConversation } from "./conversation.js";
|
|
6
|
+
import { conversationStyles } from "./conversation.styles.js";
|
|
7
|
+
import { conversationTemplate } from "./conversation.template.js";
|
|
8
|
+
const conversationDefinition = compose({
|
|
9
|
+
name: "odd-conversation",
|
|
10
|
+
element: OddkinConversation,
|
|
11
|
+
template: conversationTemplate,
|
|
12
|
+
styles: [aiBaseStyles, conversationStyles],
|
|
13
|
+
dependencies: { message: messageDefinition, activity: activityDefinition }
|
|
14
|
+
});
|
|
15
|
+
export {
|
|
16
|
+
conversationDefinition
|
|
17
|
+
};
|