@applica-software-guru/persona-chat-sdk 0.1.102

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/.eslintrc.cjs +11 -0
  2. package/.github/copilot-instructions.md +3 -0
  3. package/.nvmrc +1 -0
  4. package/.prettierignore +5 -0
  5. package/.prettierrc +8 -0
  6. package/CLAUDE.md +3 -0
  7. package/GEMINI.md +3 -0
  8. package/README.md +33 -0
  9. package/bitbucket-pipelines.yml +19 -0
  10. package/components.json +24 -0
  11. package/dist/bundle.cjs.js +28 -0
  12. package/dist/bundle.cjs.js.map +1 -0
  13. package/dist/bundle.es.js +5173 -0
  14. package/dist/bundle.es.js.map +1 -0
  15. package/dist/bundle.iife.js +28 -0
  16. package/dist/bundle.iife.js.map +1 -0
  17. package/dist/bundle.umd.js +28 -0
  18. package/dist/bundle.umd.js.map +1 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/logging.d.ts +18 -0
  22. package/dist/logging.d.ts.map +1 -0
  23. package/dist/messages.d.ts +9 -0
  24. package/dist/messages.d.ts.map +1 -0
  25. package/dist/projects.d.ts +17 -0
  26. package/dist/projects.d.ts.map +1 -0
  27. package/dist/protocol/base.d.ts +25 -0
  28. package/dist/protocol/base.d.ts.map +1 -0
  29. package/dist/protocol/index.d.ts +6 -0
  30. package/dist/protocol/index.d.ts.map +1 -0
  31. package/dist/protocol/rest.d.ts +25 -0
  32. package/dist/protocol/rest.d.ts.map +1 -0
  33. package/dist/protocol/transaction.d.ts +56 -0
  34. package/dist/protocol/transaction.d.ts.map +1 -0
  35. package/dist/protocol/webrtc.d.ts +60 -0
  36. package/dist/protocol/webrtc.d.ts.map +1 -0
  37. package/dist/protocol/websocket.d.ts +22 -0
  38. package/dist/protocol/websocket.d.ts.map +1 -0
  39. package/dist/runtime/context.d.ts +34 -0
  40. package/dist/runtime/context.d.ts.map +1 -0
  41. package/dist/runtime/file-attachment-adapter.d.ts +15 -0
  42. package/dist/runtime/file-attachment-adapter.d.ts.map +1 -0
  43. package/dist/runtime/handlers.d.ts +21 -0
  44. package/dist/runtime/handlers.d.ts.map +1 -0
  45. package/dist/runtime/listeners.d.ts +6 -0
  46. package/dist/runtime/listeners.d.ts.map +1 -0
  47. package/dist/runtime/protocols.d.ts +17 -0
  48. package/dist/runtime/protocols.d.ts.map +1 -0
  49. package/dist/runtime/threads.d.ts +34 -0
  50. package/dist/runtime/threads.d.ts.map +1 -0
  51. package/dist/runtime/utils.d.ts +10 -0
  52. package/dist/runtime/utils.d.ts.map +1 -0
  53. package/dist/runtime.d.ts +6 -0
  54. package/dist/runtime.d.ts.map +1 -0
  55. package/dist/storage/base.d.ts +9 -0
  56. package/dist/storage/base.d.ts.map +1 -0
  57. package/dist/storage/index.d.ts +3 -0
  58. package/dist/storage/index.d.ts.map +1 -0
  59. package/dist/storage/persona.d.ts +29 -0
  60. package/dist/storage/persona.d.ts.map +1 -0
  61. package/dist/tools.d.ts +72 -0
  62. package/dist/tools.d.ts.map +1 -0
  63. package/dist/types.d.ts +237 -0
  64. package/dist/types.d.ts.map +1 -0
  65. package/docs/README.md +13 -0
  66. package/docs/api-reference.md +16 -0
  67. package/docs/contributing.md +21 -0
  68. package/docs/customization.md +74 -0
  69. package/docs/features.md +7 -0
  70. package/docs/installation.md +9 -0
  71. package/docs/messages.md +214 -0
  72. package/docs/protocols.md +39 -0
  73. package/docs/transactions.md +121 -0
  74. package/docs/usage.md +40 -0
  75. package/jsconfig.node.json +10 -0
  76. package/package.json +82 -0
  77. package/playground/index.html +14 -0
  78. package/playground/src/app.tsx +10 -0
  79. package/playground/src/chat.tsx +117 -0
  80. package/playground/src/components/assistant-ui/assistant-modal.tsx +57 -0
  81. package/playground/src/components/assistant-ui/attachment.tsx +197 -0
  82. package/playground/src/components/assistant-ui/markdown-text.tsx +228 -0
  83. package/playground/src/components/assistant-ui/thread-list.tsx +91 -0
  84. package/playground/src/components/assistant-ui/thread.tsx +302 -0
  85. package/playground/src/components/assistant-ui/threadlist-sidebar.tsx +59 -0
  86. package/playground/src/components/assistant-ui/tool-fallback.tsx +93 -0
  87. package/playground/src/components/assistant-ui/tooltip-icon-button.tsx +42 -0
  88. package/playground/src/components/chat/logging.tsx +53 -0
  89. package/playground/src/components/ui/avatar.tsx +51 -0
  90. package/playground/src/components/ui/button.tsx +60 -0
  91. package/playground/src/components/ui/dialog.tsx +141 -0
  92. package/playground/src/components/ui/input.tsx +21 -0
  93. package/playground/src/components/ui/separator.tsx +26 -0
  94. package/playground/src/components/ui/sheet.tsx +139 -0
  95. package/playground/src/components/ui/sidebar.tsx +619 -0
  96. package/playground/src/components/ui/skeleton.tsx +13 -0
  97. package/playground/src/components/ui/tooltip.tsx +59 -0
  98. package/playground/src/hooks/theme.ts +70 -0
  99. package/playground/src/hooks/use-mobile.ts +19 -0
  100. package/playground/src/lib/utils.ts +6 -0
  101. package/playground/src/main.tsx +10 -0
  102. package/playground/src/styles.css +120 -0
  103. package/playground/src/tools.ts +149 -0
  104. package/playground/src/vite-env.d.ts +1 -0
  105. package/preview-build.sh +23 -0
  106. package/src/index.ts +7 -0
  107. package/src/logging.ts +34 -0
  108. package/src/messages.ts +202 -0
  109. package/src/projects.ts +57 -0
  110. package/src/protocol/base.ts +73 -0
  111. package/src/protocol/index.ts +5 -0
  112. package/src/protocol/rest.ts +107 -0
  113. package/src/protocol/transaction.ts +182 -0
  114. package/src/protocol/webrtc.ts +379 -0
  115. package/src/protocol/websocket.ts +111 -0
  116. package/src/runtime/context.ts +88 -0
  117. package/src/runtime/file-attachment-adapter.ts +48 -0
  118. package/src/runtime/handlers.ts +322 -0
  119. package/src/runtime/index.ts +6 -0
  120. package/src/runtime/listeners.ts +79 -0
  121. package/src/runtime/protocols.ts +169 -0
  122. package/src/runtime/threads.ts +105 -0
  123. package/src/runtime/utils.ts +46 -0
  124. package/src/runtime.tsx +334 -0
  125. package/src/storage/base.ts +13 -0
  126. package/src/storage/index.ts +2 -0
  127. package/src/storage/persona.ts +138 -0
  128. package/src/tools.ts +211 -0
  129. package/src/types.ts +284 -0
  130. package/tsconfig.json +36 -0
  131. package/tsconfig.node.json +15 -0
  132. package/vite.config.ts +74 -0
@@ -0,0 +1,8 @@
1
+ export * from './runtime';
2
+ export * from './logging';
3
+ export * from './protocol';
4
+ export * from './types';
5
+ export * from './tools';
6
+ export * from './storage';
7
+ export * from './projects';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ interface PersonaLogger {
2
+ log: (message: string, ...args: unknown[]) => void;
3
+ info: (message: string, ...args: unknown[]) => void;
4
+ warn: (message: string, ...args: unknown[]) => void;
5
+ error: (message: string, ...args: unknown[]) => void;
6
+ debug: (message: string, ...args: unknown[]) => void;
7
+ }
8
+ declare class PersonaConsoleLogger implements PersonaLogger {
9
+ prefix: string;
10
+ log(message: string, ...args: unknown[]): void;
11
+ info(message: string, ...args: unknown[]): void;
12
+ warn(message: string, ...args: unknown[]): void;
13
+ error(message: string, ...args: unknown[]): void;
14
+ debug(message: string, ...args: unknown[]): void;
15
+ }
16
+ export { PersonaConsoleLogger };
17
+ export type { PersonaLogger };
18
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACrD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACtD;AAED,cAAM,oBAAqB,YAAW,aAAa;IACjD,MAAM,SAAe;IAErB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIvC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;IAIzC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;CAG1C;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAChC,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { PersonaMessage } from './types';
2
+ import { ThreadMessageLike } from '@assistant-ui/react';
3
+ export declare function generateMessageId(): string;
4
+ export declare function ensureMessageId(message: PersonaMessage): PersonaMessage;
5
+ declare function removeEmptyMessages(messages: PersonaMessage[]): PersonaMessage[];
6
+ declare function parseMessages(messages: PersonaMessage[]): PersonaMessage[];
7
+ declare function convertMessage(message: PersonaMessage): ThreadMessageLike;
8
+ export { parseMessages, convertMessage, removeEmptyMessages };
9
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAmB,iBAAiB,EAAiB,MAAM,qBAAqB,CAAC;AAIxF,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,cAAc,CAiBvE;AAED,iBAAS,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CASzE;AACD,iBAAS,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAyEnE;AAED,iBAAS,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAsFlE;AAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { PersonaProjectSubscription } from './types';
2
+ type ProjectsApiConfig = {
3
+ baseUrl: string;
4
+ apiKey: string;
5
+ };
6
+ declare class ProjectsApi {
7
+ private readonly baseUrl;
8
+ private readonly apiKey;
9
+ constructor(config: ProjectsApiConfig);
10
+ private request;
11
+ getSubscription(projectId: string): Promise<PersonaProjectSubscription>;
12
+ changeSubscriptionPlan(projectId: string, toPlanType: PersonaProjectSubscription['planType']): Promise<PersonaProjectSubscription>;
13
+ addSubscriptionCredits(projectId: string, credits: number): Promise<PersonaProjectSubscription>;
14
+ }
15
+ export { ProjectsApi };
16
+ export type { ProjectsApiConfig };
17
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,cAAM,WAAW;IACf,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,iBAAiB;YAKvB,OAAO;IAiBf,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAIvE,sBAAsB,CAC1B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,0BAA0B,CAAC,UAAU,CAAC,GACjD,OAAO,CAAC,0BAA0B,CAAC;IAOhC,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAMtG;AAED,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { MessageListenerCallback, PersonaAgentContext, PersonaPacket, PersonaProtocol, PersonaTransaction, ProtocolStatus, Session, StatusChangeCallback } from '../types';
2
+ declare abstract class PersonaProtocolBase implements PersonaProtocol {
3
+ abstract status: ProtocolStatus;
4
+ abstract session: Session;
5
+ abstract autostart: boolean;
6
+ private statusChangeCallbacks;
7
+ private messageCallbacks;
8
+ addStatusChangeListener(callback: StatusChangeCallback): void;
9
+ addPacketListener(callback: MessageListenerCallback): void;
10
+ syncSession(session: Session): Promise<void>;
11
+ notifyPacket(message: PersonaPacket): Promise<void>;
12
+ notifyPackets(messages: PersonaPacket[]): Promise<void>;
13
+ setSession(session: Session): Promise<void>;
14
+ setStatus(status: ProtocolStatus): Promise<void>;
15
+ clearListeners(): void;
16
+ setAgentContext(context: PersonaAgentContext): Promise<void>;
17
+ abstract getName(): string;
18
+ abstract getPriority(): number;
19
+ abstract connect(session?: Session): Promise<Session>;
20
+ abstract disconnect(): Promise<void>;
21
+ abstract sendPacket(packet: PersonaPacket): Promise<void>;
22
+ onTransaction(_: PersonaTransaction): void;
23
+ }
24
+ export { PersonaProtocolBase };
25
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/protocol/base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,uBAAe,mBAAoB,YAAW,eAAe;IAC3D,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,gBAAgB,CAAiC;IAElD,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB;IAItD,iBAAiB,CAAC,QAAQ,EAAE,uBAAuB;IAG7C,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAGnD,aAAa,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAG3C,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAStD,cAAc,IAAI,IAAI;IAKtB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,QAAQ,CAAC,OAAO,IAAI,MAAM;IAC1B,QAAQ,CAAC,WAAW,IAAI,MAAM;IAC9B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACrD,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAElD,aAAa,CAAC,CAAC,EAAE,kBAAkB;CAC3C;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './rest';
2
+ export * from './base';
3
+ export * from './websocket';
4
+ export * from './webrtc';
5
+ export * from './transaction';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/protocol/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { PersonaProtocolBase } from './base';
2
+ import { Session, ProtocolStatus, PersonaProtocolBaseConfig, PersonaPacket } from '../types';
3
+ import { ToolInstance } from '../tools';
4
+ type PersonaRESTProtocolConfig = PersonaProtocolBaseConfig & {
5
+ apiUrl: string;
6
+ };
7
+ declare class PersonaRESTProtocol extends PersonaProtocolBase {
8
+ status: ProtocolStatus;
9
+ autostart: boolean;
10
+ session: Session;
11
+ config: PersonaRESTProtocolConfig;
12
+ notify: boolean;
13
+ context: Record<string, any>;
14
+ tools: ToolInstance[];
15
+ constructor(config: PersonaRESTProtocolConfig);
16
+ getName(): string;
17
+ getPriority(): number;
18
+ connect(session: Session): Promise<Session>;
19
+ disconnect(): Promise<void>;
20
+ syncSession(session: Session): Promise<void>;
21
+ sendPacket(packet: PersonaPacket): Promise<void>;
22
+ }
23
+ export { PersonaRESTProtocol };
24
+ export type { PersonaRESTProtocolConfig };
25
+ //# sourceMappingURL=rest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../../src/protocol/rest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAEL,OAAO,EACP,cAAc,EACd,yBAAyB,EAEzB,aAAa,EAEd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,KAAK,yBAAyB,GAAG,yBAAyB,GAAG;IAC3D,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,cAAM,mBAAoB,SAAQ,mBAAmB;IACnD,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,yBAAyB,CAAC;IAClC,MAAM,EAAE,OAAO,CAAQ;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAM;IAClC,KAAK,EAAE,YAAY,EAAE,CAAM;gBAEf,MAAM,EAAE,yBAAyB;IAOtC,OAAO,IAAI,MAAM;IAIjB,WAAW,IAAI,MAAM;IAIf,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAiD9D;AAED,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAC/B,YAAY,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { PersonaProtocolBase } from './base';
2
+ import { Session, ProtocolStatus, PersonaProtocolBaseConfig, PersonaTransaction, FunctionCall, PersonaPacket } from '../types';
3
+ import { ToolInstance } from '../tools';
4
+ type FinishTransactionRequest = {
5
+ success: boolean;
6
+ output: any;
7
+ error: string | null;
8
+ };
9
+ declare class PersonaTransactionsManager {
10
+ private config;
11
+ constructor(config: PersonaTransactionProtocolConfig);
12
+ complete(transaction: PersonaTransaction, request: FinishTransactionRequest): Promise<void>;
13
+ fail(transaction: PersonaTransaction, request: FinishTransactionRequest): Promise<void>;
14
+ persist(transaction: PersonaTransaction, request: FinishTransactionRequest): Promise<void>;
15
+ }
16
+ export type PersonaToolCallback = (...args: any[]) => void | Record<string, any> | Promise<void | Record<string, any>>;
17
+ export type PersonaTools = {
18
+ [key: string]: PersonaToolCallback;
19
+ };
20
+ declare class PersonaPersistableTransaction {
21
+ private transaction;
22
+ private manager;
23
+ constructor(transaction: PersonaTransaction, manager: PersonaTransactionsManager);
24
+ getFunctionCall(): FunctionCall | null;
25
+ invoke(tools: PersonaTools, toolInstance?: ToolInstance): Promise<void>;
26
+ complete(output: any): Promise<void>;
27
+ fail(error: string): Promise<void>;
28
+ }
29
+ type PersonaTransactionCallback = (transaction: PersonaPersistableTransaction) => void;
30
+ type PersonaTransactionProtocolConfig = PersonaProtocolBaseConfig & {
31
+ apiUrl: string;
32
+ tools: PersonaTools | ToolInstance[];
33
+ onTransaction?: PersonaTransactionCallback;
34
+ };
35
+ declare class PersonaTransactionProtocol extends PersonaProtocolBase {
36
+ status: ProtocolStatus;
37
+ autostart: boolean;
38
+ session: Session;
39
+ config: PersonaTransactionProtocolConfig;
40
+ notify: boolean;
41
+ private _tools;
42
+ private _toolSchema;
43
+ constructor(config: PersonaTransactionProtocolConfig);
44
+ getName(): string;
45
+ getPriority(): number;
46
+ getToolInstance(name: string): ToolInstance | undefined;
47
+ connect(session: Session): Promise<Session>;
48
+ disconnect(): Promise<void>;
49
+ syncSession(session: Session): Promise<void>;
50
+ sendPacket(_: PersonaPacket): Promise<void>;
51
+ onTransaction(transaction: PersonaTransaction): void;
52
+ getTools(): PersonaTools;
53
+ }
54
+ export { PersonaTransactionProtocol };
55
+ export type { PersonaTransactionProtocolConfig, FinishTransactionRequest, PersonaPersistableTransaction, PersonaTransactionCallback };
56
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/protocol/transaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { PersonaProtocolBase } from './base';
2
+ import { PersonaPacket, PersonaProtocolBaseConfig, ProtocolStatus, Session } from '../types';
3
+ type AudioAnalysisData = {
4
+ localAmplitude: number;
5
+ remoteAmplitude: number;
6
+ };
7
+ type AudioVisualizerCallback = (data: AudioAnalysisData) => void;
8
+ type PersonaWebRTCMessageCallback = (data: MessageEvent) => void;
9
+ type PersonaWebRTCErrorCallback = (error: string) => void;
10
+ type PersonaWebRTCConfig = PersonaProtocolBaseConfig & {
11
+ webrtcUrl: string;
12
+ iceServers?: RTCIceServer[];
13
+ };
14
+ declare class PersonaWebRTCClient {
15
+ private config;
16
+ private pc;
17
+ private ws;
18
+ private localStream;
19
+ private remoteStream;
20
+ private audioCtx;
21
+ private localAnalyser;
22
+ private remoteAnalyser;
23
+ private analyzerFrame;
24
+ private dataChannel;
25
+ private isConnected;
26
+ private visualizerCallbacks;
27
+ private messageCallbacks;
28
+ private errorCallbacks;
29
+ private queuedMessages;
30
+ constructor(config: PersonaWebRTCConfig);
31
+ connect(session: Session): Promise<Session>;
32
+ disconnect(): Promise<void>;
33
+ addVisualizerCallback(callback: AudioVisualizerCallback): void;
34
+ addMessageCallback(callback: PersonaWebRTCMessageCallback): void;
35
+ addErrorCallback(callback: PersonaWebRTCErrorCallback): void;
36
+ createDataChannel(label?: string): void;
37
+ sendPacket(packet: PersonaPacket): void;
38
+ private _startAnalyzers;
39
+ private _stopAnalyzers;
40
+ }
41
+ type PersonaWebRTCProtocolConfig = PersonaWebRTCConfig & {
42
+ autostart?: boolean;
43
+ };
44
+ declare class PersonaWebRTCProtocol extends PersonaProtocolBase {
45
+ status: ProtocolStatus;
46
+ session: Session;
47
+ autostart: boolean;
48
+ config: PersonaWebRTCProtocolConfig;
49
+ webRTCClient: PersonaWebRTCClient;
50
+ constructor(config: PersonaWebRTCProtocolConfig);
51
+ getName(): string;
52
+ getPriority(): number;
53
+ syncSession(session: Session): Promise<void>;
54
+ connect(session?: Session): Promise<Session>;
55
+ disconnect(): Promise<void>;
56
+ sendPacket(packet: PersonaPacket): Promise<void>;
57
+ }
58
+ export { PersonaWebRTCProtocol };
59
+ export type { PersonaWebRTCProtocolConfig, AudioVisualizerCallback, AudioAnalysisData };
60
+ //# sourceMappingURL=webrtc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc.d.ts","sourceRoot":"","sources":["../../../src/protocol/webrtc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE7F,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,KAAK,uBAAuB,GAAG,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAEjE,KAAK,4BAA4B,GAAG,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;AAEjE,KAAK,0BAA0B,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAE1D,KAAK,mBAAmB,GAAG,yBAAyB,GAAG;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B,CAAC;AAEF,cAAM,mBAAmB;IACvB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAA6B;IAE7C,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,WAAW,CAA+B;IAElD,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,cAAc,CAAuB;gBAEjC,MAAM,EAAE,mBAAmB;IAI1B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAgI3C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBjC,qBAAqB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IAG9D,kBAAkB,CAAC,QAAQ,EAAE,4BAA4B,GAAG,IAAI;IAIhE,gBAAgB,CAAC,QAAQ,EAAE,0BAA0B,GAAG,IAAI;IAI5D,iBAAiB,CAAC,KAAK,SAAa,GAAG,IAAI;IAoB3C,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAU9C,OAAO,CAAC,eAAe;IAgDvB,OAAO,CAAC,cAAc;CAQvB;AAED,KAAK,2BAA2B,GAAG,mBAAmB,GAAG;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,cAAM,qBAAsB,SAAQ,mBAAmB;IACrD,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,2BAA2B,CAAC;IACpC,YAAY,EAAE,mBAAmB,CAAC;gBAEtB,MAAM,EAAE,2BAA2B;IAwBxC,OAAO,IAAI,MAAM;IAGjB,WAAW,IAAI,MAAM;IAIf,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAgB5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAQxD;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,YAAY,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { PersonaPacket, PersonaProtocolBaseConfig, ProtocolStatus, Session } from '../types';
2
+ import { PersonaProtocolBase } from './base';
3
+ type PersonaWebSocketProtocolConfig = PersonaProtocolBaseConfig & {
4
+ webSocketUrl: string;
5
+ };
6
+ declare class PersonaWebSocketProtocol extends PersonaProtocolBase {
7
+ status: ProtocolStatus;
8
+ autostart: boolean;
9
+ session: Session;
10
+ config: PersonaWebSocketProtocolConfig;
11
+ webSocket: WebSocket | null;
12
+ constructor(config: PersonaWebSocketProtocolConfig);
13
+ getName(): string;
14
+ getPriority(): number;
15
+ syncSession(session: Session): Promise<void>;
16
+ connect(session?: Session): Promise<Session>;
17
+ disconnect(): Promise<void>;
18
+ sendPacket(packet: PersonaPacket): Promise<void>;
19
+ }
20
+ export { PersonaWebSocketProtocol };
21
+ export type { PersonaWebSocketProtocolConfig };
22
+ //# sourceMappingURL=websocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/protocol/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,KAAK,8BAA8B,GAAG,yBAAyB,GAAG;IAChE,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,cAAM,wBAAyB,SAAQ,mBAAmB;IACxD,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,8BAA8B,CAAC;IACvC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;gBAEhB,MAAM,EAAE,8BAA8B;IAS3C,OAAO,IAAI,MAAM;IAIjB,WAAW,IAAI,MAAM;IAIf,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IASlD,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAiD5C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3B,UAAU,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAQxD;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC;AACpC,YAAY,EAAE,8BAA8B,EAAE,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { PersonaProtocol, ProtocolStatus } from '../types';
2
+ import { PersonaMessage } from '../types';
3
+ import { PersonaWebRTCProtocol } from '../protocol';
4
+ export type PersonaRuntimeContextType = {
5
+ protocols: PersonaProtocol[];
6
+ protocolsStatus: Map<string, ProtocolStatus>;
7
+ getMessages: () => PersonaMessage[];
8
+ };
9
+ export declare const PersonaRuntimeContext: import("react").Context<PersonaRuntimeContextType | undefined>;
10
+ /**
11
+ * Hook to access the PersonaRuntime context
12
+ */
13
+ export declare function usePersonaRuntime(): PersonaRuntimeContextType;
14
+ /**
15
+ * Retrieves a specific protocol instance from the PersonaRuntimeContext.
16
+ *
17
+ * @param protocol - The name of the protocol to use.
18
+ * @returns {PersonaProtocol | null} - The protocol instance or null if not found.
19
+ * @throws {Error} - If the hook is used outside of a PersonaRuntimeProvider.
20
+ */
21
+ export declare function usePersonaRuntimeProtocol(protocol: string): PersonaProtocol | null;
22
+ /**
23
+ * Gets the endpoint URL of the first available protocol
24
+ */
25
+ export declare function usePersonaRuntimeEndpoint(): string | null;
26
+ /**
27
+ * Gets the WebRTC protocol instance
28
+ */
29
+ export declare function usePersonaRuntimeWebRTCProtocol(): PersonaWebRTCProtocol | null;
30
+ /**
31
+ * Gets all messages from the current conversation
32
+ */
33
+ export declare function usePersonaRuntimeMessages(): PersonaMessage[];
34
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/runtime/context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGpD,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC7C,WAAW,EAAE,MAAM,cAAc,EAAE,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,gEAAkE,CAAC;AAErG;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,yBAAyB,CAM7D;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAyBlF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAOzD;AAED;;GAEG;AACH,wBAAgB,+BAA+B,IAAI,qBAAqB,GAAG,IAAI,CAE9E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,cAAc,EAAE,CAM5D"}
@@ -0,0 +1,15 @@
1
+ import type { AttachmentAdapter } from '@assistant-ui/react';
2
+ import type { PendingAttachment, CompleteAttachment, Attachment } from '@assistant-ui/react';
3
+ /**
4
+ * Generic file attachment adapter that accepts any file type.
5
+ * Files are read as base64 data URLs and sent with their original MIME type.
6
+ */
7
+ export declare class SimpleFileAttachmentAdapter implements AttachmentAdapter {
8
+ accept: string;
9
+ add(state: {
10
+ file: File;
11
+ }): Promise<PendingAttachment>;
12
+ send(attachment: PendingAttachment): Promise<CompleteAttachment>;
13
+ remove(_attachment: Attachment): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=file-attachment-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-attachment-adapter.d.ts","sourceRoot":"","sources":["../../../src/runtime/file-attachment-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAW7F;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,iBAAiB;IACnE,MAAM,SAAO;IAEP,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWtD,IAAI,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgBhE,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CACrD"}
@@ -0,0 +1,21 @@
1
+ import { AppendMessage } from '@assistant-ui/react';
2
+ import { StartRunConfig } from '@assistant-ui/react/dist/legacy-runtime/runtime-cores/core/ThreadRuntimeCore';
3
+ import { PersonaProtocol, PersonaMessage, TransformMessages } from '../types';
4
+ import type { PersonaLogger } from '../logging';
5
+ /**
6
+ * Creates the onNew handler for new messages
7
+ */
8
+ export declare function createOnNewHandler(protocols: PersonaProtocol[], setMessages: React.Dispatch<React.SetStateAction<PersonaMessage[]>>, setIsRunning: React.Dispatch<React.SetStateAction<boolean>>, transformMessages?: TransformMessages, logger?: PersonaLogger): (message: AppendMessage) => Promise<void>;
9
+ /**
10
+ * Creates the onEdit handler for editing messages
11
+ */
12
+ export declare function createOnEditHandler(protocols: PersonaProtocol[], messages: PersonaMessage[], setMessages: React.Dispatch<React.SetStateAction<PersonaMessage[]>>, setIsRunning: React.Dispatch<React.SetStateAction<boolean>>, transformMessages?: TransformMessages, logger?: PersonaLogger): (message: AppendMessage) => Promise<void>;
13
+ /**
14
+ * Creates the onReload handler for regenerating messages
15
+ */
16
+ export declare function createOnReloadHandler(protocols: PersonaProtocol[], messages: PersonaMessage[], setMessages: React.Dispatch<React.SetStateAction<PersonaMessage[]>>, setIsRunning: React.Dispatch<React.SetStateAction<boolean>>, transformMessages?: TransformMessages, logger?: PersonaLogger): (parentId: string | null, config: StartRunConfig) => Promise<void>;
17
+ /**
18
+ * Creates the onCancel handler for cancelling message generation
19
+ */
20
+ export declare function createOnCancelHandler(protocols: PersonaProtocol[], setMessages: React.Dispatch<React.SetStateAction<PersonaMessage[]>>, setIsRunning: React.Dispatch<React.SetStateAction<boolean>>, transformMessages?: TransformMessages): () => Promise<void>;
21
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/runtime/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,8EAA8E,CAAC;AAC9G,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,eAAe,EAAE,EAC5B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,EACnE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAC3D,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,MAAM,CAAC,EAAE,aAAa,aAEC,aAAa,mBAoHrC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,eAAe,EAAE,EAC5B,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,EACnE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAC3D,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,MAAM,CAAC,EAAE,aAAa,aAEC,aAAa,mBAiDrC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,eAAe,EAAE,EAC5B,QAAQ,EAAE,cAAc,EAAE,EAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,EACnE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAC3D,iBAAiB,CAAC,EAAE,iBAAiB,EACrC,MAAM,CAAC,EAAE,aAAa,cAEE,MAAM,GAAG,IAAI,UAAU,cAAc,mBAwE9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,eAAe,EAAE,EAC5B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,EACnE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAC3D,iBAAiB,CAAC,EAAE,iBAAiB,uBAgCtC"}
@@ -0,0 +1,6 @@
1
+ import { PersonaPacket, PersonaMessage, PersonaProtocol, TransformMessages } from '../types';
2
+ /**
3
+ * Creates packet listener for a protocol
4
+ */
5
+ export declare function createPacketListener(protocol: PersonaProtocol, setMessages: React.Dispatch<React.SetStateAction<PersonaMessage[]>>, setIsRunning: React.Dispatch<React.SetStateAction<boolean>>, protocols: PersonaProtocol[], transformMessages?: TransformMessages): (message: PersonaPacket) => void;
6
+ //# sourceMappingURL=listeners.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../../../src/runtime/listeners.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAwC,eAAe,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGnI;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,EACnE,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAC3D,SAAS,EAAE,eAAe,EAAE,EAC5B,iBAAiB,CAAC,EAAE,iBAAiB,aAEpB,aAAa,UAS/B"}
@@ -0,0 +1,17 @@
1
+ import { PersonaProtocol, PersonaConfig } from '../types';
2
+ import type { PersonaLogger } from '../logging';
3
+ type ProtocolsConfig = PersonaConfig['protocols'];
4
+ /**
5
+ * Initializes protocols based on configuration
6
+ */
7
+ export declare function initializeProtocols(_protocols: ProtocolsConfig, config: {
8
+ dev: boolean;
9
+ baseUrl?: string;
10
+ apiKey: string;
11
+ agentId: string;
12
+ userId?: string;
13
+ tools?: PersonaConfig['tools'];
14
+ logger?: PersonaLogger;
15
+ }): PersonaProtocol[];
16
+ export {};
17
+ //# sourceMappingURL=protocols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocols.d.ts","sourceRoot":"","sources":["../../../src/runtime/protocols.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA6B,aAAa,EAAE,MAAM,UAAU,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAWhD,KAAK,eAAe,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;AAElD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE;IACN,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,GACA,eAAe,EAAE,CAiEnB"}
@@ -0,0 +1,34 @@
1
+ import { ThreadData } from '../types';
2
+ import type { SessionStorage } from '../storage';
3
+ /**
4
+ * Generates a new session ID
5
+ */
6
+ export declare function generateSessionId(): string;
7
+ /**
8
+ * Creates the thread list adapter for multi-thread support
9
+ */
10
+ export declare function createThreadListAdapter(currentThreadId: string, threadList: ThreadData[], setCurrentThreadId: (id: string) => void, setThreadList: React.Dispatch<React.SetStateAction<ThreadData[]>>, storage: SessionStorage, onThreadCreate?: (threadId: string) => void, onThreadSwitch?: (threadId: string) => void, onThreadArchive?: (threadId: string) => void, onThreadUnarchive?: (threadId: string) => void, onThreadDelete?: (threadId: string) => void): {
11
+ threadId: string;
12
+ threads: {
13
+ id: string;
14
+ threadId: string;
15
+ title: string;
16
+ status: "regular";
17
+ }[];
18
+ archivedThreads: {
19
+ id: string;
20
+ threadId: string;
21
+ title: string;
22
+ status: "archived";
23
+ }[];
24
+ onSwitchToNewThread: () => void;
25
+ onSwitchToThread: (threadId: string) => void;
26
+ onArchive: (threadId: string) => void;
27
+ onUnarchive: (threadId: string) => void;
28
+ onDelete: (threadId: string) => Promise<void>;
29
+ };
30
+ /**
31
+ * Generates a default thread ID
32
+ */
33
+ export declare function generateDefaultThreadId(): string;
34
+ //# sourceMappingURL=threads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../src/runtime/threads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAO1C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,UAAU,EAAE,EACxB,kBAAkB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,EACxC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC,CAAC,EACjE,OAAO,EAAE,cAAc,EACvB,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EAC3C,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EAC3C,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EAC5C,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EAC9C,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;;;;;;;;;;;;;;;iCAkCZ,MAAM;0BAKb,MAAM;4BASJ,MAAM;yBAKH,MAAM;EAepC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
@@ -0,0 +1,10 @@
1
+ import type { PersonaProtocol } from '../types';
2
+ /**
3
+ * Converts a File object to a base64 string
4
+ */
5
+ export declare function fileToBase64(file: File): Promise<string>;
6
+ /**
7
+ * Extracts the first available protocol endpoint URL
8
+ */
9
+ export declare function getFirstAvailableProtocolEndpoint(protocols: PersonaProtocol[]): string | null;
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/runtime/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAexD;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,GAAG,IAAI,CAmB7F"}
@@ -0,0 +1,6 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { PersonaConfig, PersonaMessage, PersonaResponse, ThreadData } from './types';
3
+ export { usePersonaRuntime, usePersonaRuntimeProtocol, usePersonaRuntimeEndpoint, usePersonaRuntimeWebRTCProtocol, usePersonaRuntimeMessages, } from './runtime/context';
4
+ export type { PersonaMessage, PersonaResponse, ThreadData };
5
+ export declare function PersonaRuntimeProvider({ children, ...config }: PropsWithChildren<PersonaConfig>): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoC,iBAAiB,EAAmB,MAAM,OAAO,CAAC;AAS7F,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAA2B,UAAU,EAAE,MAAM,SAAS,CAAC;AAS9G,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,yBAAyB,EACzB,+BAA+B,EAC/B,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AAiT5D,wBAAgB,sBAAsB,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,EAAE,iBAAiB,CAAC,aAAa,CAAC,2CAE/F"}
@@ -0,0 +1,9 @@
1
+ import type { PersonaMessage, Session, ThreadData } from '../types';
2
+ export interface SessionStorage {
3
+ sync(sessionId: Session): Promise<PersonaMessage[]>;
4
+ archive(sessionId: Session): Promise<void>;
5
+ unarchive(sessionId: Session): Promise<void>;
6
+ delete(sessionId: Session): Promise<void>;
7
+ list(agentId: string, userId?: string): Promise<ThreadData[]>;
8
+ }
9
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/storage/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAEpD,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAC/D"}
@@ -0,0 +1,3 @@
1
+ export * from './base';
2
+ export * from './persona';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { PersonaMessage, Session, ThreadData } from '../types';
2
+ import type { SessionStorage } from './base';
3
+ import type { PersonaLogger } from '../logging';
4
+ type PersonaSessionStorageOptions = {
5
+ endpoint: string;
6
+ apiKey?: string;
7
+ pageSize?: number;
8
+ logger?: PersonaLogger;
9
+ };
10
+ export declare class PersonaSessionStorage implements SessionStorage {
11
+ private endpoint;
12
+ private apiKey?;
13
+ private pageSize;
14
+ private logger?;
15
+ constructor(opts: PersonaSessionStorageOptions);
16
+ private buildHeaders;
17
+ /**
18
+ * Fetch messages for a session from the Persona REST API
19
+ */
20
+ sync(sessionId: Session): Promise<PersonaMessage[]>;
21
+ archive(sessionId: Session): Promise<void>;
22
+ unarchive(sessionId: Session): Promise<void>;
23
+ delete(sessionId: Session): Promise<void>;
24
+ _visiblility(sessionId: Session, visibility: 'active' | 'deleted' | 'archived'): Promise<void>;
25
+ clearAll(): Promise<void>;
26
+ list(agentId: string, userId?: string): Promise<ThreadData[]>;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=persona.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona.d.ts","sourceRoot":"","sources":["../../../src/storage/persona.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,KAAK,4BAA4B,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAgB;gBAEnB,IAAI,EAAE,4BAA4B;IAO9C,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACG,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA8CnD,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,SAAS,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,MAAM,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9F,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAyBpE"}