@wowyuarm/dsh-agent-team 0.1.7 → 0.1.9
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/package.json +2 -1
- package/packages/agent-team/README.md +5 -3
- package/packages/agent-team/README.zh.md +5 -3
- package/packages/agent-team/core-skills/member-skill-manager/SKILL.md +2 -0
- package/packages/agent-team/lib/attachments.js +14 -4
- package/packages/agent-team/lib/context-management.js +379 -0
- package/packages/agent-team/lib/context-projection.js +574 -0
- package/packages/agent-team/lib/context-source.js +72 -0
- package/packages/agent-team/lib/index.js +1258 -54
- package/packages/agent-team/lib/ledger.js +357 -26
- package/packages/agent-team/lib/member-context.js +7 -3
- package/packages/agent-team/lib/member-runtime.js +159 -4
- package/packages/agent-team/lib/pressure-policy.js +200 -0
- package/packages/agent-team/lib/progress-nudge.js +320 -0
- package/packages/agent-team/lib/spec.js +18 -0
- package/packages/agent-team/lib/typert.host.js +124 -42
- package/packages/agent-team/lib/typert.remote-client.d.ts.map +1 -1
- package/packages/agent-team/lib/typert.remote-client.js +39 -25
- package/packages/agent-team/lib/types/attachments.d.ts +1 -1
- package/packages/agent-team/lib/types/attachments.d.ts.map +1 -1
- package/packages/agent-team/lib/types/context-management.d.ts +142 -0
- package/packages/agent-team/lib/types/context-management.d.ts.map +1 -0
- package/packages/agent-team/lib/types/context-projection.d.ts +219 -0
- package/packages/agent-team/lib/types/context-projection.d.ts.map +1 -0
- package/packages/agent-team/lib/types/context-source.d.ts +83 -0
- package/packages/agent-team/lib/types/context-source.d.ts.map +1 -0
- package/packages/agent-team/lib/types/index.d.ts +283 -2
- package/packages/agent-team/lib/types/index.d.ts.map +1 -1
- package/packages/agent-team/lib/types/ledger.d.ts +120 -7
- package/packages/agent-team/lib/types/ledger.d.ts.map +1 -1
- package/packages/agent-team/lib/types/member-context.d.ts.map +1 -1
- package/packages/agent-team/lib/types/member-runtime.d.ts +30 -2
- package/packages/agent-team/lib/types/member-runtime.d.ts.map +1 -1
- package/packages/agent-team/lib/types/pressure-policy.d.ts +106 -0
- package/packages/agent-team/lib/types/pressure-policy.d.ts.map +1 -0
- package/packages/agent-team/lib/types/progress-nudge.d.ts +136 -0
- package/packages/agent-team/lib/types/progress-nudge.d.ts.map +1 -0
- package/packages/agent-team/lib/types/spec.d.ts.map +1 -1
- package/packages/agent-team/lib/types/types/entities.d.ts +32 -1
- package/packages/agent-team/lib/types/types/entities.d.ts.map +1 -1
- package/packages/agent-team/lib/types/types/operations.d.ts +38 -3
- package/packages/agent-team/lib/types/types/operations.d.ts.map +1 -1
- package/packages/agent-team/lib/types/types/requests-results.d.ts +54 -1
- package/packages/agent-team/lib/types/types/requests-results.d.ts.map +1 -1
- package/packages/agent-team/preset/team-member/agent.cordis.yml +10 -2
- package/packages/client-agent-team/lib/client.js +283 -398
- package/packages/client-agent-team/lib/client.js.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts +1 -2
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.js +61 -41
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamChannelPage.js +3 -7
- package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts +3 -1
- package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamComposer.js +37 -27
- package/packages/client-agent-team/lib/types/client/TeamConversation.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamConversation.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamConversation.js +2 -2
- package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.js +3 -2
- package/packages/client-agent-team/lib/types/client/TeamMessage.js +5 -0
- package/packages/client-agent-team/lib/types/client/TeamPresenceDot.d.ts +2 -2
- package/packages/client-agent-team/lib/types/client/TeamPresenceDot.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamPresenceDot.js +4 -6
- package/packages/client-agent-team/lib/types/client/TeamStateDot.d.ts +14 -0
- package/packages/client-agent-team/lib/types/client/TeamStateDot.d.ts.map +1 -0
- package/packages/client-agent-team/lib/types/client/TeamStateDot.js +15 -0
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts +1 -0
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamThreadPage.js +41 -16
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.js +2 -2
- package/packages/client-agent-team/lib/types/client/index.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/index.js +36 -78
- package/packages/client-agent-team/lib/types/client/locales.d.ts +0 -16
- package/packages/client-agent-team/lib/types/client/locales.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/locales.js +0 -16
- package/packages/client-agent-team/lib/types/client/sidebar-drag.d.ts +1 -2
- package/packages/client-agent-team/lib/types/client/sidebar-drag.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/slots.d.ts +8 -1
- package/packages/client-agent-team/lib/types/client/slots.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/task-refs.d.ts +7 -1
- package/packages/client-agent-team/lib/types/client/task-refs.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/task-refs.js +25 -3
- package/packages/client-agent-team/lib/types/client/team-formatters.d.ts +11 -10
- package/packages/client-agent-team/lib/types/client/team-formatters.d.ts.map +1 -1
- package/packages/client-agent-team/lib/types/client/team-formatters.js +14 -11
- package/packages/tool-agent-team/README.md +8 -5
- package/packages/tool-agent-team/README.zh.md +8 -5
- package/packages/tool-agent-team/lib/context-tools.js +179 -0
- package/packages/tool-agent-team/lib/index.js +144 -25
- package/packages/tool-agent-team/lib/types/context-tools.d.ts +16 -0
- package/packages/tool-agent-team/lib/types/context-tools.d.ts.map +1 -0
- package/packages/tool-agent-team/lib/types/index.d.ts.map +1 -1
- package/packages/agent-team/lib/auto-compaction.js +0 -201
- package/packages/agent-team/lib/types/auto-compaction.d.ts +0 -47
- package/packages/agent-team/lib/types/auto-compaction.d.ts.map +0 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.d.ts +0 -12
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.d.ts.map +0 -1
- package/packages/client-agent-team/lib/types/client/TeamMemberDock.js +0 -13
- package/packages/client-agent-team/lib/types/client/member-session-input.d.ts +0 -20
- package/packages/client-agent-team/lib/types/client/member-session-input.d.ts.map +0 -1
- package/packages/client-agent-team/lib/types/client/member-session-input.js +0 -110
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { AgentTeamClientMemberStatus } from '@wowyuarm/dsh-agent-team/types';
|
|
2
|
-
import type { ISession } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
3
|
-
import type { ClientSessionContext, InputTriggerSource, SubmitOutcome } from '@deepseek-ai/dsh-client-ui-input-trigger/client';
|
|
4
|
-
export declare const TEAM_COMMAND_SOURCE = "agent-team-command";
|
|
5
|
-
export declare const TEAM_MEMBER_SOURCE = "agent-team-member";
|
|
6
|
-
export interface TeamMemberSessionInputOptions {
|
|
7
|
-
readonly isEmbeddedMemberSession: (sessionId: ClientSessionContext['sessionId']) => boolean;
|
|
8
|
-
readonly members: () => Promise<readonly AgentTeamClientMemberStatus[]>;
|
|
9
|
-
readonly executeCompact: (sessionId: ClientSessionContext['sessionId']) => Promise<SubmitOutcome>;
|
|
10
|
-
}
|
|
11
|
-
/** Preserve the public Session command admission contract, not handler outcome. */
|
|
12
|
-
export declare function admitTeamCompact(session: Pick<ISession, 'command'>): Promise<SubmitOutcome>;
|
|
13
|
-
/**
|
|
14
|
-
* The two Team-only sources live in the shared public registry, but their
|
|
15
|
-
* candidate plane is inert for every ordinary Session. The member source owns
|
|
16
|
-
* its stable ref→label cache so serialization never falls back to guessing a
|
|
17
|
-
* handle from plain text.
|
|
18
|
-
*/
|
|
19
|
-
export declare function createTeamMemberSessionSources(options: TeamMemberSessionInputOptions): readonly InputTriggerSource[];
|
|
20
|
-
//# sourceMappingURL=member-session-input.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"member-session-input.d.ts","sourceRoot":"","sources":["../../../src/client/member-session-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAqB,MAAM,gCAAgC,CAAA;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAA;AAC9E,OAAO,KAAK,EACV,oBAAoB,EAAgB,kBAAkB,EAAmB,aAAa,EACvF,MAAM,iDAAiD,CAAA;AAExD,eAAO,MAAM,mBAAmB,uBAAuB,CAAA;AACvD,eAAO,MAAM,kBAAkB,sBAAsB,CAAA;AAErD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,uBAAuB,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAA;IAC3F,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,SAAS,2BAA2B,EAAE,CAAC,CAAA;IACvE,QAAQ,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,oBAAoB,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;CAClG;AAED,mFAAmF;AACnF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAIjG;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,6BAA6B,GAAG,SAAS,kBAAkB,EAAE,CAgFpH"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
export const TEAM_COMMAND_SOURCE = 'agent-team-command';
|
|
2
|
-
export const TEAM_MEMBER_SOURCE = 'agent-team-member';
|
|
3
|
-
/** Preserve the public Session command admission contract, not handler outcome. */
|
|
4
|
-
export async function admitTeamCompact(session) {
|
|
5
|
-
const result = await session.command('/compact');
|
|
6
|
-
if (!result.ok)
|
|
7
|
-
throw new Error(`session.command failed: ${result.error.message}`);
|
|
8
|
-
return result.value.matched ? { kind: 'success' } : { kind: 'error', text: 'unknown command: /compact' };
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* The two Team-only sources live in the shared public registry, but their
|
|
12
|
-
* candidate plane is inert for every ordinary Session. The member source owns
|
|
13
|
-
* its stable ref→label cache so serialization never falls back to guessing a
|
|
14
|
-
* handle from plain text.
|
|
15
|
-
*/
|
|
16
|
-
export function createTeamMemberSessionSources(options) {
|
|
17
|
-
const labels = new Map();
|
|
18
|
-
const command = {
|
|
19
|
-
trigger: '/',
|
|
20
|
-
name: TEAM_COMMAND_SOURCE,
|
|
21
|
-
showGroupTitle: false,
|
|
22
|
-
async candidates(session, { query }) {
|
|
23
|
-
if (!options.isEmbeddedMemberSession(session.sessionId) || !'compact'.startsWith(query.toLocaleLowerCase()))
|
|
24
|
-
return [];
|
|
25
|
-
return [{ name: '/compact', description: '压缩当前 Session 上下文', value: 'compact' }];
|
|
26
|
-
},
|
|
27
|
-
onPick({ candidate, session }) {
|
|
28
|
-
if (candidate.value !== 'compact' || !options.isEmbeddedMemberSession(session.sessionId))
|
|
29
|
-
return undefined;
|
|
30
|
-
const claim = {
|
|
31
|
-
token: '/compact',
|
|
32
|
-
submit: async () => options.executeCompact(session.sessionId),
|
|
33
|
-
};
|
|
34
|
-
return { claim };
|
|
35
|
-
},
|
|
36
|
-
// Typing the full `/compact` line without picking from the menu still
|
|
37
|
-
// routes through the Team claim inside an embedded Member Session. The
|
|
38
|
-
// shipped command source answers first for its own vocabulary; unknown
|
|
39
|
-
// slash lines fall through here, where a Member Session claims only its
|
|
40
|
-
// one supported token and ordinary Sessions decline.
|
|
41
|
-
async matchEnter(session, line) {
|
|
42
|
-
if (!options.isEmbeddedMemberSession(session.sessionId))
|
|
43
|
-
return undefined;
|
|
44
|
-
const trimmed = line.trim();
|
|
45
|
-
if (trimmed !== '/compact')
|
|
46
|
-
return undefined;
|
|
47
|
-
const claim = {
|
|
48
|
-
token: '/compact',
|
|
49
|
-
submit: async () => options.executeCompact(session.sessionId),
|
|
50
|
-
};
|
|
51
|
-
return { claim };
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
|
-
const member = {
|
|
55
|
-
trigger: '@',
|
|
56
|
-
name: TEAM_MEMBER_SOURCE,
|
|
57
|
-
showGroupTitle: false,
|
|
58
|
-
async candidates(session, { query, signal }) {
|
|
59
|
-
if (!options.isEmbeddedMemberSession(session.sessionId))
|
|
60
|
-
return [];
|
|
61
|
-
const normalized = query.toLocaleLowerCase();
|
|
62
|
-
const members = await options.members();
|
|
63
|
-
if (signal.aborted)
|
|
64
|
-
return [];
|
|
65
|
-
return members
|
|
66
|
-
.filter(status => status.member.sessionId !== session.sessionId && status.member.state !== 'inactive' && status.member.state !== 'archived')
|
|
67
|
-
.filter(status => status.member.handle.toLocaleLowerCase().startsWith(normalized))
|
|
68
|
-
.map(status => {
|
|
69
|
-
labels.set(status.member.memberId, `@${status.member.handle}`);
|
|
70
|
-
return {
|
|
71
|
-
name: `@${status.member.handle}`,
|
|
72
|
-
description: '引用成员 · 不会通知',
|
|
73
|
-
value: String(status.member.memberId),
|
|
74
|
-
};
|
|
75
|
-
});
|
|
76
|
-
},
|
|
77
|
-
onPick({ candidate, session }) {
|
|
78
|
-
if (!options.isEmbeddedMemberSession(session.sessionId) || candidate.value === undefined)
|
|
79
|
-
return undefined;
|
|
80
|
-
const ref = candidate.value;
|
|
81
|
-
const label = labels.get(ref);
|
|
82
|
-
if (label === undefined)
|
|
83
|
-
return undefined;
|
|
84
|
-
const insert = {
|
|
85
|
-
source: TEAM_MEMBER_SOURCE,
|
|
86
|
-
// The input machine retains the typed trigger; label must therefore
|
|
87
|
-
// omit `@` or the draft would become `@@handle` after insertion.
|
|
88
|
-
label: label.slice(1),
|
|
89
|
-
ref,
|
|
90
|
-
clipboardText: label,
|
|
91
|
-
};
|
|
92
|
-
return { insert };
|
|
93
|
-
},
|
|
94
|
-
codec: {
|
|
95
|
-
clipboardText: ref => labels.get(ref) ?? `@${String(ref)}`,
|
|
96
|
-
serialize: async (ref) => {
|
|
97
|
-
const stable = String(ref);
|
|
98
|
-
const label = labels.get(ref) ?? '';
|
|
99
|
-
return `<team-member ref="${escapeAttribute(stable)}">${escapeText(label)}</team-member>`;
|
|
100
|
-
},
|
|
101
|
-
},
|
|
102
|
-
};
|
|
103
|
-
return [command, member];
|
|
104
|
-
}
|
|
105
|
-
function escapeText(value) {
|
|
106
|
-
return value.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>');
|
|
107
|
-
}
|
|
108
|
-
function escapeAttribute(value) {
|
|
109
|
-
return escapeText(value).replaceAll('"', '"').replaceAll("'", ''');
|
|
110
|
-
}
|