@pouchy_ai/companion-sdk 0.32.1 → 0.33.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/CHANGELOG.md +15 -0
- package/dist/adapter-core.d.ts +4 -2
- package/dist/adapter-core.d.ts.map +1 -1
- package/dist/adapter-core.js +2 -2
- package/dist/adapter-core.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter-core.ts +6 -4
package/CHANGELOG.md
CHANGED
|
@@ -12,6 +12,21 @@ a protocol bump is always called out explicitly here.
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased]
|
|
14
14
|
|
|
15
|
+
## [0.33.0] - 2026-07-14
|
|
16
|
+
|
|
17
|
+
**Breaking** (adapter view controller only; pre-1.0 minor per this package's
|
|
18
|
+
semver caveat). No protocol change (`PROTOCOL_VERSION` stays `1`).
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- **`CompanionTranscriptEntry.role` is now `'user' | 'assistant'`** (was
|
|
23
|
+
`'user' | 'companion'`). `'assistant'` is the industry role vocabulary and
|
|
24
|
+
what BOTH sibling surfaces already used — this package's own voice-call
|
|
25
|
+
transcript (`onTranscript` events) and `@pouchy_ai/react`'s `ChatMessage` —
|
|
26
|
+
so the adapters were the one odd dialect out. Migration: replace
|
|
27
|
+
`role === 'companion'` checks with `role === 'assistant'` in hosts using
|
|
28
|
+
`createCompanionView` / `/svelte` / `/vue` (0.31.0–0.32.1).
|
|
29
|
+
|
|
15
30
|
## [0.32.1] - 2026-07-14
|
|
16
31
|
|
|
17
32
|
Backwards-compatible fixes to the adapter view controller (`createCompanionView`,
|
package/dist/adapter-core.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { CompanionClient } from './client.js';
|
|
2
2
|
import type { CompanionStreamState } from './client.js';
|
|
3
3
|
import type { ConfirmRequestPayload } from './protocol.js';
|
|
4
|
-
/** One rendered line of the conversation, in arrival order.
|
|
4
|
+
/** One rendered line of the conversation, in arrival order. `'assistant'`
|
|
5
|
+
* matches the industry role vocabulary and this package's own voice-call
|
|
6
|
+
* transcript + `@pouchy_ai/react`'s ChatMessage (0.33.0 — was 'companion'). */
|
|
5
7
|
export interface CompanionTranscriptEntry {
|
|
6
|
-
role: 'user' | '
|
|
8
|
+
role: 'user' | 'assistant';
|
|
7
9
|
text: string;
|
|
8
10
|
/** Client wall-clock ms when the entry was appended. */
|
|
9
11
|
at: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-core.d.ts","sourceRoot":"","sources":["../src/adapter-core.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAGvE
|
|
1
|
+
{"version":3,"file":"adapter-core.d.ts","sourceRoot":"","sources":["../src/adapter-core.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,qBAAqB,EAAiB,MAAM,YAAY,CAAC;AAGvE;;gFAEgF;AAChF,MAAM,WAAW,wBAAwB;IACxC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;CACX;AAED;2EAC2E;AAC3E,MAAM,WAAW,qBAAqB;IACrC,WAAW,EAAE,oBAAoB,CAAC;IAClC,mEAAmE;IACnE,UAAU,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAChD,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB;;qDAEiD;IACjD,eAAe,EAAE,SAAS,qBAAqB,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACpC,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;2BAKuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC7B,iEAAiE;IACjE,WAAW,IAAI,qBAAqB,CAAC;IACrC,0DAA0D;IAC1D,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,kEAAkE;IAClE,QAAQ,CACP,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAC/C,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3C;qEACiE;IACjE,aAAa,CACZ,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC7B,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC;IAChD;;4BAEwB;IACxB,OAAO,IAAI,IAAI,CAAC;IAChB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;CACjC;AAID;2EAC2E;AAC3E,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,eAAe,EACvB,IAAI,CAAC,EAAE,oBAAoB,GACzB,aAAa,CA0If"}
|
package/dist/adapter-core.js
CHANGED
|
@@ -61,7 +61,7 @@ export function createCompanionView(client, opts) {
|
|
|
61
61
|
if (t.user)
|
|
62
62
|
restored.push({ role: 'user', text: t.user, at: t.ts });
|
|
63
63
|
if (t.assistant)
|
|
64
|
-
restored.push({ role: '
|
|
64
|
+
restored.push({ role: 'assistant', text: t.assistant, at: t.ts });
|
|
65
65
|
}
|
|
66
66
|
if (restored.length)
|
|
67
67
|
commit({ transcript: Object.freeze(restored.slice(-cap)) });
|
|
@@ -75,7 +75,7 @@ export function createCompanionView(client, opts) {
|
|
|
75
75
|
client.onMessage((text) => {
|
|
76
76
|
// The authoritative full reply replaces any streamed draft; typing is
|
|
77
77
|
// definitionally over once the reply lands.
|
|
78
|
-
const next = [...snapshot.transcript, { role: '
|
|
78
|
+
const next = [...snapshot.transcript, { role: 'assistant', text, at: Date.now() }];
|
|
79
79
|
commit({
|
|
80
80
|
transcript: Object.freeze(next.slice(-cap)),
|
|
81
81
|
draft: '',
|
package/dist/adapter-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-core.js","sourceRoot":"","sources":["../src/adapter-core.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,8EAA8E;AAC9E,+EAA+E;AAC/E,kEAAkE;AAClE,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,6EAA6E;AAC7E,SAAS;AAKT,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"adapter-core.js","sourceRoot":"","sources":["../src/adapter-core.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pouchy_ai/companion-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "Embed the Pouchy companion — chat, voice, tools, memory, live world-state, instant UI, and agent-to-agent messaging — in any app, game, or site.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
package/src/adapter-core.ts
CHANGED
|
@@ -19,9 +19,11 @@ import type { CompanionStreamState } from './client';
|
|
|
19
19
|
import type { ConfirmRequestPayload, TypingPayload } from './protocol';
|
|
20
20
|
import { CompanionError } from './errors';
|
|
21
21
|
|
|
22
|
-
/** One rendered line of the conversation, in arrival order.
|
|
22
|
+
/** One rendered line of the conversation, in arrival order. `'assistant'`
|
|
23
|
+
* matches the industry role vocabulary and this package's own voice-call
|
|
24
|
+
* transcript + `@pouchy_ai/react`'s ChatMessage (0.33.0 — was 'companion'). */
|
|
23
25
|
export interface CompanionTranscriptEntry {
|
|
24
|
-
role: 'user' | '
|
|
26
|
+
role: 'user' | 'assistant';
|
|
25
27
|
text: string;
|
|
26
28
|
/** Client wall-clock ms when the entry was appended. */
|
|
27
29
|
at: number;
|
|
@@ -129,7 +131,7 @@ export function createCompanionView(
|
|
|
129
131
|
const restored: CompanionTranscriptEntry[] = [];
|
|
130
132
|
for (const t of turns) {
|
|
131
133
|
if (t.user) restored.push({ role: 'user', text: t.user, at: t.ts });
|
|
132
|
-
if (t.assistant) restored.push({ role: '
|
|
134
|
+
if (t.assistant) restored.push({ role: 'assistant', text: t.assistant, at: t.ts });
|
|
133
135
|
}
|
|
134
136
|
if (restored.length) commit({ transcript: Object.freeze(restored.slice(-cap)) });
|
|
135
137
|
})
|
|
@@ -143,7 +145,7 @@ export function createCompanionView(
|
|
|
143
145
|
client.onMessage((text: string) => {
|
|
144
146
|
// The authoritative full reply replaces any streamed draft; typing is
|
|
145
147
|
// definitionally over once the reply lands.
|
|
146
|
-
const next = [...snapshot.transcript, { role: '
|
|
148
|
+
const next = [...snapshot.transcript, { role: 'assistant' as const, text, at: Date.now() }];
|
|
147
149
|
commit({
|
|
148
150
|
transcript: Object.freeze(next.slice(-cap)),
|
|
149
151
|
draft: '',
|