dsh-input-traffic 0.2.8 → 0.2.10-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.ja.md +78 -0
  2. package/CHANGELOG.ko.md +78 -0
  3. package/CHANGELOG.md +92 -0
  4. package/INSTALL.ja.md +151 -0
  5. package/INSTALL.ko.md +151 -0
  6. package/INSTALL.md +152 -0
  7. package/INSTALL.zh.md +151 -0
  8. package/README.en.md +63 -7
  9. package/README.ja.md +187 -0
  10. package/README.ko.md +181 -0
  11. package/README.md +86 -10
  12. package/dsh.plugin.json +13 -0
  13. package/lib/client.js +1433 -1338
  14. package/lib/client.js.map +1 -1
  15. package/lib/types/client/freeze-button.d.ts +16 -9
  16. package/lib/types/client/freeze-button.d.ts.map +1 -1
  17. package/lib/types/client/freeze-button.js +86 -55
  18. package/lib/types/client/freeze-button.js.map +1 -1
  19. package/lib/types/client/freeze-store.d.ts +17 -10
  20. package/lib/types/client/freeze-store.d.ts.map +1 -1
  21. package/lib/types/client/freeze-store.js +54 -38
  22. package/lib/types/client/freeze-store.js.map +1 -1
  23. package/lib/types/client/index.d.ts +47 -24
  24. package/lib/types/client/index.d.ts.map +1 -1
  25. package/lib/types/client/index.js +117 -79
  26. package/lib/types/client/index.js.map +1 -1
  27. package/lib/types/client/locales.d.ts +63 -58
  28. package/lib/types/client/locales.d.ts.map +1 -1
  29. package/lib/types/client/locales.js +211 -105
  30. package/lib/types/client/locales.js.map +1 -1
  31. package/lib/types/client/session-guard-bridge.d.ts +18 -0
  32. package/lib/types/client/session-guard-bridge.d.ts.map +1 -0
  33. package/lib/types/client/session-guard-bridge.js +42 -0
  34. package/lib/types/client/session-guard-bridge.js.map +1 -0
  35. package/lib/types/client/steer-queue-dock.d.ts +9 -1
  36. package/lib/types/client/steer-queue-dock.d.ts.map +1 -1
  37. package/lib/types/client/steer-queue-dock.js +6 -5
  38. package/lib/types/client/steer-queue-dock.js.map +1 -1
  39. package/package.json +15 -7
@@ -1,80 +1,118 @@
1
- import { NS, en, zh } from "./locales.js";
2
- import { SteerQueueDock } from "./steer-queue-dock.js";
3
- import { FreezeButton } from "./freeze-button.js";
4
- import { HideEnterRow } from "./hide-enter-row.js";
5
- /** Durable conversation settings namespace owned by ui-conversation. */
6
- const CONVERSATION_SETTINGS_NAMESPACE = 'ui-conversation';
7
- /** Busy-Enter field inside that namespace; the plugin pins it to queue. */
8
- const BUSY_ENTER_FIELD = 'busyEnter';
9
- /** Services required by the browser half. */
10
- export const inject = ['slots', 'locale', 'sessions', 'conversation', 'settingsScope'];
11
- /**
12
- * Client plugin body: dictionaries, busy-Enter pinning, and the two slot
13
- * shadowings.
14
- * @param ctx - client root context.
15
- */
16
- export function apply(ctx) {
17
- ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'dsh-input-traffic: dictionaries');
18
- // Take over the busy-Enter behavior: plain Enter stays queue-later while
19
- // the official row is hidden. Pinning here also repairs a persisted `steer`
20
- // preference that would otherwise keep working invisibly behind the hidden
21
- // row. Best-effort: a memory-mode host simply accepts it locally.
22
- const conversationSettings = ctx.settingsScope.bind({
23
- namespace: CONVERSATION_SETTINGS_NAMESPACE,
24
- });
25
- void conversationSettings.set(BUSY_ENTER_FIELD, 'queue');
26
- // Shadow the official queue dock with the three-tier planning strip.
27
- ctx.slots.inject('conversation.input.dock', () => ctx.slots.register({
28
- name: 'conversation.input.dock',
29
- id: 'queue',
30
- order: 20,
31
- priority: -1,
32
- locale: NS,
33
- inject: (sessionId) => {
34
- const actx = ctx.sessions.scope(sessionId);
35
- if (actx === undefined)
36
- throw new Error(`steer dock: session "${sessionId}" resolved no scope`);
37
- const conversation = actx.get('conversation');
38
- if (conversation === undefined)
39
- throw new Error('steer dock: conversation service unavailable');
40
- return {
41
- updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),
42
- cancel: () => conversation.cancel(),
43
- send: (text) => conversation.send(text),
44
- setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text); },
45
- notify: (level, text) => { conversation.input.for(actx).notify(level, text); },
46
- };
47
- },
48
- }, SteerQueueDock));
49
- // Composer-right freeze/resume control (reachable before anything queues).
50
- ctx.slots.inject('conversation.input.right', () => ctx.slots.register({
51
- name: 'conversation.input.right',
52
- id: 'steer-freeze',
53
- order: 30,
54
- locale: NS,
55
- inject: (sessionId) => {
56
- const actx = ctx.sessions.scope(sessionId);
57
- if (actx === undefined)
58
- throw new Error(`steer freeze: session "${sessionId}" resolved no scope`);
59
- const conversation = actx.get('conversation');
60
- if (conversation === undefined)
61
- throw new Error('steer freeze: conversation service unavailable');
62
- return {
63
- updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),
64
- cancel: () => conversation.cancel(),
65
- send: (text) => conversation.send(text),
66
- setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text); },
67
- notify: (level, text) => { conversation.input.for(actx).notify(level, text); },
68
- };
69
- },
70
- }, FreezeButton));
71
- // Hide the official busy-Enter settings row (null render wins the cell).
72
- ctx.slots.inject('settings.general.item', () => ctx.slots.register({
73
- name: 'settings.general.item',
74
- id: 'composer-enter',
75
- order: 20,
76
- priority: -1,
77
- locale: NS,
78
- }, HideEnterRow));
79
- }
1
+ import { NS, en, zh } from "./locales.js";
2
+ import { SteerQueueDock } from "./steer-queue-dock.js";
3
+ import { FreezeButton } from "./freeze-button.js";
4
+ import { HideEnterRow } from "./hide-enter-row.js";
5
+ /** Durable conversation settings namespace owned by ui-conversation. */
6
+ const CONVERSATION_SETTINGS_NAMESPACE = 'ui-conversation';
7
+ /** Busy-Enter field inside that namespace; the plugin pins it to queue. */
8
+ const BUSY_ENTER_FIELD = 'busyEnter';
9
+ /**
10
+ * Display order of the queue strip inside `conversation.input.dock`.
11
+ *
12
+ * List rows render sorted by `order` ascending, so a value above every other
13
+ * contributor keeps the strip as the bottom-most entry of the band — directly
14
+ * on top of the composer card. Known contributors in both 0.1.1-rc.2 and
15
+ * 0.1.2-rc.1: `todo` 0, `goal` 10, official `queue` 20, `dsh-perm-gate.notice`
16
+ * 30. DSH has no "last" slot semantics, so this is a convention, not a
17
+ * structural guarantee: a third party registering a larger value could still
18
+ * land below us.
19
+ */
20
+ export const QUEUE_DOCK_ORDER = 1000;
21
+ /**
22
+ * Deliver one plain-text message into the session's next step. The exposed
23
+ * conversation `send` verb only queues into the next turn, so resume steers
24
+ * through the session face's steer-mode prompt instead (no harness change).
25
+ * @param ctx - root context (resolves the session face behind the scope).
26
+ * @param actx - agent-scoped context of the owning session.
27
+ * @param text - message text to deliver.
28
+ */
29
+ function steerPrompt(actx, text) {
30
+ // steer-mode prompt 面在本版(main@0.2.8)契约中未声明;resume 落到 conversation.send
31
+ // (排队到下一轮)交付 safe_point 文本,与 feature 分支语义对齐但取当前可用 API。
32
+ const conversation = actx.get('conversation');
33
+ if (conversation === undefined)
34
+ return Promise.reject(new Error('steer resume: conversation service unavailable'));
35
+ return conversation.send(text);
36
+ }
37
+ /** Services required by the browser half. */
38
+ export const inject = ['slots', 'locale', 'sessions', 'conversation', 'settingsScope'];
39
+ /**
40
+ * Client plugin body: dictionaries, busy-Enter pinning, and the two slot
41
+ * shadowings.
42
+ * @param ctx - client root context.
43
+ */
44
+ export function apply(ctx) {
45
+ ctx.effect(() => ctx.locale.register(NS, { zh, en }), 'dsh-input-traffic: dictionaries');
46
+ // Take over the busy-Enter behavior: plain Enter stays queue-later while
47
+ // the official row is hidden. Pinning here also repairs a persisted `steer`
48
+ // preference that would otherwise keep working invisibly behind the hidden
49
+ // row. Best-effort: a memory-mode host simply accepts it locally.
50
+ const conversationSettings = ctx.settingsScope.bind({
51
+ namespace: CONVERSATION_SETTINGS_NAMESPACE,
52
+ });
53
+ void conversationSettings.set(BUSY_ENTER_FIELD, 'queue');
54
+ // Shadow the official queue dock with the three-tier planning strip. The
55
+ // high `order` keeps it the bottom-most entry of the band (see the file
56
+ // header); `priority: -1` is what wins the official `queue` cell.
57
+ ctx.slots.inject('conversation.input.dock', () => ctx.slots.register({
58
+ name: 'conversation.input.dock',
59
+ id: 'queue',
60
+ order: QUEUE_DOCK_ORDER,
61
+ priority: -1,
62
+ locale: NS,
63
+ inject: (sessionId) => {
64
+ const actx = ctx.sessions.scope(sessionId);
65
+ if (actx === undefined)
66
+ throw new Error(`steer dock: session "${sessionId}" resolved no scope`);
67
+ const conversation = actx.get('conversation');
68
+ if (conversation === undefined)
69
+ throw new Error('steer dock: conversation service unavailable');
70
+ return {
71
+ updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),
72
+ cancel: () => conversation.cancel(),
73
+ send: (text) => conversation.send(text),
74
+ setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text); },
75
+ notify: (level, text) => { conversation.input.for(actx).notify(level, text); },
76
+ };
77
+ },
78
+ }, SteerQueueDock));
79
+ // Composer-right freeze/resume control (reachable before anything queues).
80
+ ctx.slots.inject('conversation.input.right', () => ctx.slots.register({
81
+ name: 'conversation.input.right',
82
+ id: 'steer-freeze',
83
+ order: 30,
84
+ locale: NS,
85
+ inject: (sessionId) => {
86
+ const actx = ctx.sessions.scope(sessionId);
87
+ if (actx === undefined)
88
+ throw new Error(`steer freeze: session "${sessionId}" resolved no scope`);
89
+ const conversation = actx.get('conversation');
90
+ if (conversation === undefined)
91
+ throw new Error('steer freeze: conversation service unavailable');
92
+ return {
93
+ updateQueue: (itemId, action) => conversation.updateQueue(itemId, action),
94
+ cancel: () => conversation.cancel(),
95
+ send: (text) => conversation.send(text),
96
+ // safe_point 恢复经 conversation.send 排队到下一轮(本版契约无 steer prompt 面)。
97
+ sendSteer: (text) => steerPrompt(actx, text),
98
+ sessionId: String(sessionId),
99
+ setDraft: (text) => { conversation.input.for(actx).actions.setDraft(text); },
100
+ notify: (level, text) => { conversation.input.for(actx).notify(level, text); },
101
+ // 冻结期间 raise composer block:composer 变 inert(回车/发送按钮全部失效),
102
+ // 输入不会漏进对话;恢复时清除。block 不锁 input.right(恢复按钮仍可点)。
103
+ setComposerBlock: (reason) => {
104
+ conversation.blocks.set(sessionId, reason === undefined ? undefined : { reason });
105
+ },
106
+ };
107
+ },
108
+ }, FreezeButton));
109
+ // Hide the official busy-Enter settings row (null render wins the cell).
110
+ ctx.slots.inject('settings.general.item', () => ctx.slots.register({
111
+ name: 'settings.general.item',
112
+ id: 'composer-enter',
113
+ order: 20,
114
+ priority: -1,
115
+ locale: NS,
116
+ }, HideEnterRow));
117
+ }
80
118
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -1,59 +1,64 @@
1
- /** `steer` namespace dictionaries. */
2
- /** Dictionary namespace owned by this plugin. */
3
- export declare const NS = "steer";
4
- /** Simplified Chinese dictionary (the key-set source of truth). */
5
- export declare const zh: {
6
- 'queue.count': string;
7
- 'queue.edit': string;
8
- 'queue.edit.unsupported': string;
9
- 'queue.save': string;
10
- 'queue.cancelEdit': string;
11
- 'queue.remove': string;
12
- 'queue.removeFailed': string;
13
- 'queue.editFailed': string;
14
- 'queue.editFailed.pulledBack': string;
15
- 'steer.inflight': string;
16
- 'steer.now': string;
17
- 'steer.now.aria': string;
18
- 'steer.now.unsupported': string;
19
- 'steer.nowFailed': string;
20
- 'steer.next': string;
21
- 'steer.next.aria': string;
22
- 'steer.nextFailed': string;
23
- 'steer.later': string;
24
- 'steer.later.aria': string;
25
- 'steer.revoke': string;
26
- 'steer.revoke.aria': string;
27
- 'steer.revoke.unsupported': string;
28
- 'steer.revokeFailed': string;
29
- 'steer.moveUp': string;
30
- 'steer.moveDown': string;
31
- 'steer.reorder.unsupported': string;
32
- 'steer.reorderFailed': string;
33
- 'steer.reorderStale': string;
34
- 'steer.dragReorder': string;
35
- 'steer.pullBack': string;
36
- 'steer.pullBack.unsupported': string;
37
- 'steer.pullBack.composerBusy': string;
38
- 'steer.pullBackFailed': string;
39
- 'steer.badge.now': string;
40
- 'steer.badge.next': string;
41
- 'steer.badge.later': string;
42
- 'steer.unavailable.running': string;
43
- 'steer.clear': string;
44
- 'steer.clear.confirm': string;
45
- 'steer.clear.cancel': string;
46
- 'steer.clear.aria': string;
47
- 'steer.clearFailed': string;
48
- 'steer.freeze': string;
49
- 'steer.resume': string;
50
- 'steer.frozen': string;
51
- 'steer.frozenBadge': string;
52
- 'steer.freezeFailed': string;
53
- 'steer.resumeFailed': string;
54
- };
55
- /** English dictionary (keys mirror zh). */
56
- export declare const en: Record<keyof typeof zh, string>;
57
- /** Dictionary key union. */
58
- export type SteerKey = keyof typeof zh;
1
+ /** `steer` client dictionaries (zh / en / ja / ko). */
2
+ /** Dictionary namespace owned by this plugin. */
3
+ export declare const NS = "steer";
4
+ /** Simplified Chinese dictionary (the key-set source of truth). */
5
+ export declare const zh: {
6
+ 'queue.count': string;
7
+ 'queue.edit': string;
8
+ 'queue.edit.unsupported': string;
9
+ 'queue.save': string;
10
+ 'queue.cancelEdit': string;
11
+ 'queue.remove': string;
12
+ 'queue.removeFailed': string;
13
+ 'queue.editFailed': string;
14
+ 'queue.editFailed.pulledBack': string;
15
+ 'steer.inflight': string;
16
+ 'steer.now': string;
17
+ 'steer.now.aria': string;
18
+ 'steer.now.unsupported': string;
19
+ 'steer.nowFailed': string;
20
+ 'steer.next': string;
21
+ 'steer.next.aria': string;
22
+ 'steer.nextFailed': string;
23
+ 'steer.later': string;
24
+ 'steer.later.aria': string;
25
+ 'steer.revoke': string;
26
+ 'steer.revoke.aria': string;
27
+ 'steer.revoke.unsupported': string;
28
+ 'steer.revokeFailed': string;
29
+ 'steer.moveUp': string;
30
+ 'steer.moveDown': string;
31
+ 'steer.reorder.unsupported': string;
32
+ 'steer.reorderFailed': string;
33
+ 'steer.reorderStale': string;
34
+ 'steer.dragReorder': string;
35
+ 'steer.pullBack': string;
36
+ 'steer.pullBack.unsupported': string;
37
+ 'steer.pullBack.composerBusy': string;
38
+ 'steer.pullBackFailed': string;
39
+ 'steer.badge.now': string;
40
+ 'steer.badge.next': string;
41
+ 'steer.badge.later': string;
42
+ 'steer.unavailable.running': string;
43
+ 'steer.clear': string;
44
+ 'steer.clear.confirm': string;
45
+ 'steer.clear.cancel': string;
46
+ 'steer.clear.aria': string;
47
+ 'steer.clearFailed': string;
48
+ 'steer.freeze': string;
49
+ 'steer.resume': string;
50
+ 'steer.frozen': string;
51
+ 'steer.frozenInput': string;
52
+ 'steer.frozenBadge': string;
53
+ 'steer.freezeFailed': string;
54
+ 'steer.resumeFailed': string;
55
+ };
56
+ /** English dictionary (keys mirror zh). */
57
+ export declare const en: Record<keyof typeof zh, string>;
58
+ /** Japanese dictionary (keys mirror zh). */
59
+ export declare const ja: Record<keyof typeof zh, string>;
60
+ /** Korean dictionary (keys mirror zh). */
61
+ export declare const ko: Record<keyof typeof zh, string>;
62
+ /** Dictionary key union. */
63
+ export type SteerKey = keyof typeof zh;
59
64
  //# sourceMappingURL=locales.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAEtC,iDAAiD;AACjD,eAAO,MAAM,EAAE,UAAU,CAAA;AAEzB,mEAAmE;AACnE,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDmB,CAAA;AAElC,2CAA2C;AAC3C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAiD9C,CAAA;AAED,4BAA4B;AAC5B,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAA"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../../src/client/locales.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,iDAAiD;AACjD,eAAO,MAAM,EAAE,UAAU,CAAA;AAEzB,mEAAmE;AACnE,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDmB,CAAA;AAElC,2CAA2C;AAC3C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAkD9C,CAAA;AAED,4CAA4C;AAC5C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAkD9C,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,EAAE,EAAE,MAAM,CAAC,MAAM,OAAO,EAAE,EAAE,MAAM,CAkD9C,CAAA;AAED,4BAA4B;AAC5B,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,EAAE,CAAA"}