@deepseek-ai/dsh-experimental-forge-session 0.0.0-stage → 0.2.2-alpha.3
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.i18n.yaml +37 -0
- package/README.md +104 -2
- package/README.zh.md +105 -0
- package/lib/index.js +854 -0
- package/lib/types/commands.d.ts +63 -0
- package/lib/types/index.d.ts +91 -0
- package/lib/types/projection.d.ts +33 -0
- package/lib/types/reference-lookup.d.ts +15 -0
- package/lib/types/references.d.ts +19 -0
- package/lib/types/types.d.ts +96 -0
- package/locale/de.json +6 -0
- package/locale/en.json +6 -0
- package/locale/es.json +6 -0
- package/locale/fr.json +6 -0
- package/locale/ja.json +6 -0
- package/locale/pt.json +6 -0
- package/locale/ru.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +85 -3
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/** Recognition of shell commands and output that bind change requests to a Session. */
|
|
2
|
+
import type { CommandEvidence } from './types.ts';
|
|
3
|
+
/** One branch a `git push` output reported as updated. */
|
|
4
|
+
export interface PushedRef {
|
|
5
|
+
/** Remote as `git push` printed it after `To`. */
|
|
6
|
+
readonly remote: string;
|
|
7
|
+
/** Branch name on the remote. */
|
|
8
|
+
readonly branch: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Read the command string of a `bash` or `pwsh` tool call.
|
|
12
|
+
* @param argumentsJson - raw tool-call arguments as the model produced them.
|
|
13
|
+
* @returns the command, or undefined when the arguments are not JSON or carry no string `command`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function commandOf(argumentsJson: string): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Classify the binding evidence a command and its output can carry.
|
|
18
|
+
* `gh pr create` (or its alias `gh pr new`) prints the change request URL;
|
|
19
|
+
* `gh pr view`, `gh pr edit`, and `gh pr checkout` act on one change request,
|
|
20
|
+
* which a URL or a number with an explicit repository and host can name;
|
|
21
|
+
* their output can also print its URL. `git push`,
|
|
22
|
+
* with or without leading `-C`, `-c`, and long options, prints the updated
|
|
23
|
+
* refs. When a command does both, the URLs a result prints bind as created.
|
|
24
|
+
* The match is textual, so quoted mentions also classify; the result parsers
|
|
25
|
+
* then find no evidence in their output.
|
|
26
|
+
* @param command - shell command text.
|
|
27
|
+
* @returns the evidence, or undefined when the command has none of these forms.
|
|
28
|
+
*/
|
|
29
|
+
export declare function commandEvidence(command: string): CommandEvidence | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Find GitHub pull request URLs in command output.
|
|
32
|
+
* @param text - rendered shell result.
|
|
33
|
+
* @returns distinct URLs in order of first appearance.
|
|
34
|
+
*/
|
|
35
|
+
export declare function changeRequestUrls(text: string): string[];
|
|
36
|
+
/**
|
|
37
|
+
* Find the URLs that `gh pr view`, `gh pr edit`, or `gh pr checkout` output
|
|
38
|
+
* prints for the change request it acts on: gh's `url:` field or a URL alone
|
|
39
|
+
* on a line before the `--` line that starts a description, and JSON `url`
|
|
40
|
+
* members. Links in a description or in other fields name other pages.
|
|
41
|
+
* @param text - rendered shell result.
|
|
42
|
+
* @returns distinct URLs in order of first appearance.
|
|
43
|
+
*/
|
|
44
|
+
export declare function ownChangeRequestUrls(text: string): string[];
|
|
45
|
+
/**
|
|
46
|
+
* Find branches that `git push` output reports as created, updated, forced,
|
|
47
|
+
* or already up to date. Each ref line belongs to the nearest preceding
|
|
48
|
+
* `To <remote>` line. Rejected and deleted refs, new tags, and explicit refs
|
|
49
|
+
* outside `refs/heads/` are excluded. Unqualified tag updates cannot be
|
|
50
|
+
* distinguished from branch updates and are included.
|
|
51
|
+
* @param text - rendered shell result, stdout and stderr.
|
|
52
|
+
* @returns distinct pushed branches in order of first appearance.
|
|
53
|
+
*/
|
|
54
|
+
export declare function pushedBranches(text: string): PushedRef[];
|
|
55
|
+
/**
|
|
56
|
+
* Compare two change request URLs ignoring scheme, letter case, query,
|
|
57
|
+
* fragment, and trailing slashes.
|
|
58
|
+
* @param left - one URL.
|
|
59
|
+
* @param right - the other URL.
|
|
60
|
+
* @returns whether both name the same web page.
|
|
61
|
+
*/
|
|
62
|
+
export declare function sameChangeRequestUrl(left: string, right: string): boolean;
|
|
63
|
+
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/** Binds change requests to the Session that created, pushed, or tracked them, and watches the bound ones. */
|
|
2
|
+
import { Context, Service } from '@deepseek-ai/cordis';
|
|
3
|
+
import z from '@deepseek-ai/schemastery';
|
|
4
|
+
import type { Session } from '@deepseek-ai/dsh-session';
|
|
5
|
+
import type { Config, SessionChangeRequest, SessionChangeRequestsListener } from './types.ts';
|
|
6
|
+
export type * from './types.ts';
|
|
7
|
+
declare module '@deepseek-ai/cordis' {
|
|
8
|
+
interface Context {
|
|
9
|
+
forgeSession: ForgeSessionService;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Session-scoped change request bindings. The `forgeChangeRequests`
|
|
14
|
+
* projection derives them from `gh pr create`, `gh pr view`, `gh pr edit`,
|
|
15
|
+
* `gh pr checkout`, and `git push` results and from
|
|
16
|
+
* `plugin:forge-session/binding` records. After each push result, and when a
|
|
17
|
+
* caller reports the branch a Session works on, the service looks up open
|
|
18
|
+
* change requests whose head is that branch and records the unbound ones as
|
|
19
|
+
* discovered. Watching a Session polls its visible change requests through
|
|
20
|
+
* `ctx.forge`.
|
|
21
|
+
*/
|
|
22
|
+
export declare class ForgeSessionService extends Service {
|
|
23
|
+
static inject: string[];
|
|
24
|
+
static Config: z<Config>;
|
|
25
|
+
private readonly home;
|
|
26
|
+
private readonly discoveryTimeoutMs;
|
|
27
|
+
private readonly watches;
|
|
28
|
+
private readonly discoveries;
|
|
29
|
+
private readonly sessionLifetimes;
|
|
30
|
+
private readonly lifetime;
|
|
31
|
+
private projection;
|
|
32
|
+
constructor(ctx: Context, config: Config);
|
|
33
|
+
/**
|
|
34
|
+
* List the change requests bound to a Session and not dismissed.
|
|
35
|
+
* @param session - Session whose bindings are read.
|
|
36
|
+
* @returns visible bindings in first-recorded order, each with its latest polling result.
|
|
37
|
+
*/
|
|
38
|
+
changeRequests(session: Session): SessionChangeRequest[];
|
|
39
|
+
/**
|
|
40
|
+
* Bind a change request to a Session by URL, or restore a dismissed binding.
|
|
41
|
+
* Appends a `track` record with the provider's canonical URL unless the
|
|
42
|
+
* change request is already visible.
|
|
43
|
+
* @param session - Session that receives the binding.
|
|
44
|
+
* @param url - web URL of the change request.
|
|
45
|
+
* @throws when no registered provider recognizes the URL.
|
|
46
|
+
*/
|
|
47
|
+
track(session: Session, url: string): void;
|
|
48
|
+
/**
|
|
49
|
+
* Look up open change requests whose head is a branch the Session works on,
|
|
50
|
+
* and record the unbound ones as discovered, as after a push of that branch.
|
|
51
|
+
* A remote that no provider recognizes changes nothing; a failed lookup is
|
|
52
|
+
* logged and changes nothing.
|
|
53
|
+
* @param session - Session that receives the bindings.
|
|
54
|
+
* @param remote - URL of the remote that holds the branch.
|
|
55
|
+
* @param branch - branch name on that remote.
|
|
56
|
+
* @returns resolves once the lookup has recorded its bindings or failed.
|
|
57
|
+
*/
|
|
58
|
+
discoverBranch(session: Session, remote: string, branch: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Hide a visible binding. Appends a `dismiss` record; a URL that is not
|
|
61
|
+
* visibly bound leaves the log unchanged. Discovery never restores a
|
|
62
|
+
* dismissed binding; `track` does.
|
|
63
|
+
* @param session - Session that owns the binding.
|
|
64
|
+
* @param url - web URL of the change request.
|
|
65
|
+
*/
|
|
66
|
+
dismiss(session: Session, url: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* Watch a Session's visible change requests as an effect on the calling
|
|
69
|
+
* fiber. Every visible change request that a provider recognizes is polled
|
|
70
|
+
* through `ctx.forge` while the Session has a watcher. Listeners receive the
|
|
71
|
+
* complete list after each later binding or provider change, or polling result; read the
|
|
72
|
+
* current list with {@link changeRequests}. Listeners must not throw; a
|
|
73
|
+
* thrown error is logged and skipped.
|
|
74
|
+
* @param session - Session to watch.
|
|
75
|
+
* @param listener - receives the complete visible list.
|
|
76
|
+
* @returns the disposer that stops this watch.
|
|
77
|
+
*/
|
|
78
|
+
watch(session: Session, listener: SessionChangeRequestsListener): () => void;
|
|
79
|
+
protected [Service.init](): Promise<void>;
|
|
80
|
+
private state;
|
|
81
|
+
private entries;
|
|
82
|
+
/** Discover change requests for this result's pushes and refresh watchers after binding changes. */
|
|
83
|
+
private react;
|
|
84
|
+
/** Poll exactly the visible change requests that a provider recognizes. */
|
|
85
|
+
private sync;
|
|
86
|
+
private notify;
|
|
87
|
+
private discover;
|
|
88
|
+
private lookup;
|
|
89
|
+
}
|
|
90
|
+
export default ForgeSessionService;
|
|
91
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** Projection that folds shell results and binding records into one Session's change request bindings, and shows clients the bindings. */
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import type { SessionEvent } from '@deepseek-ai/dsh-session';
|
|
4
|
+
import type { BindingState, ForgeChangeRequestsState } from './types.ts';
|
|
5
|
+
/** Plugin record type of binding actions. */
|
|
6
|
+
export declare const BINDING_RECORD = "plugin:forge-session/binding";
|
|
7
|
+
/**
|
|
8
|
+
* The `forgeChangeRequests` unit. A `bash` or `pwsh` call whose command is
|
|
9
|
+
* `gh pr create`, `gh pr view`, `gh pr edit`, `gh pr checkout`, or
|
|
10
|
+
* `git push` stays pending until its first result. A successful result binds
|
|
11
|
+
* every pull request URL a `gh pr create` result prints; for the other `gh pr`
|
|
12
|
+
* commands it binds the URL the command names and the URL the output prints
|
|
13
|
+
* for its own change request; and it records the branches it reports as
|
|
14
|
+
* pushed. Failed tool executions bind nothing; a nonzero exit status does not
|
|
15
|
+
* matter, because the URL or ref line is the evidence. `turn/end` drops calls
|
|
16
|
+
* that never received a result. Binding records bind, restore, and hide URLs.
|
|
17
|
+
* Clients, including the Session summary, see the bindings; the array keeps
|
|
18
|
+
* its reference while only pending calls and pushes change.
|
|
19
|
+
*/
|
|
20
|
+
export declare const forgeChangeRequestsProjection: {
|
|
21
|
+
key: "forgeChangeRequests";
|
|
22
|
+
stateVersion: number;
|
|
23
|
+
stateSchema: z.ZodType<ForgeChangeRequestsState, unknown, z.core.$ZodTypeInternals<ForgeChangeRequestsState, unknown>>;
|
|
24
|
+
init: () => ForgeChangeRequestsState;
|
|
25
|
+
apply: typeof apply;
|
|
26
|
+
wire: {
|
|
27
|
+
viewSchema: z.ZodType<readonly BindingState[], unknown, z.core.$ZodTypeInternals<readonly BindingState[], unknown>>;
|
|
28
|
+
view: (state: NoInfer<ForgeChangeRequestsState>) => readonly BindingState[];
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
declare function apply(state: ForgeChangeRequestsState, event: SessionEvent): ForgeChangeRequestsState;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=projection.d.ts.map
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Resolve unqualified CLI references in the shell execution world and persist only confirmed URLs. */
|
|
2
|
+
import type { Context } from '@deepseek-ai/cordis';
|
|
3
|
+
import type { Session } from '@deepseek-ai/dsh-session';
|
|
4
|
+
/**
|
|
5
|
+
* Observe completed foreground Bash calls while tools and shell services exist.
|
|
6
|
+
* Queries use the same shell service, cwd, managed environment, and standing
|
|
7
|
+
* sandbox policy. Failed lookups leave bindings unchanged and log a warning.
|
|
8
|
+
* Cancellation leaves bindings unchanged; disposal aborts and awaits all queries.
|
|
9
|
+
* Replay performs no lookup.
|
|
10
|
+
* @param ctx - owning plugin context.
|
|
11
|
+
* @param timeoutMs - shell deadline for one read-only lookup.
|
|
12
|
+
* @param record - persists a confirmed URL without restoring dismissed bindings.
|
|
13
|
+
*/
|
|
14
|
+
export declare function observeReferences(ctx: Context, timeoutMs: number, record: (session: Session, url: string) => void): void;
|
|
15
|
+
//# sourceMappingURL=reference-lookup.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Literal GitHub CLI references, with shell quoting and command separators preserved. */
|
|
2
|
+
/** One PR explicitly selected by a supported GitHub CLI invocation. */
|
|
3
|
+
export interface GhReference {
|
|
4
|
+
/** Canonical URL when the command supplies its host, otherwise null. */
|
|
5
|
+
readonly url: string | null;
|
|
6
|
+
/** Read-only command for an unqualified repository in the first simple command, otherwise null. */
|
|
7
|
+
readonly lookup: string | null;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Read explicit URL selectors or numeric selectors with `--repo`/`-R`.
|
|
11
|
+
* Shell expansion, multiline scripts, substitutions, and unsupported options
|
|
12
|
+
* are excluded. Unqualified repositories can be resolved only for a single
|
|
13
|
+
* simple command, optionally piped to an output filter; compound commands
|
|
14
|
+
* may change the CLI environment. PowerShell callers may use only `url`.
|
|
15
|
+
* @param command - logged shell command text.
|
|
16
|
+
* @returns references in command order; no process or environment is read.
|
|
17
|
+
*/
|
|
18
|
+
export declare function ghReferences(command: string): GhReference[];
|
|
19
|
+
//# sourceMappingURL=references.d.ts.map
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** Session binding vocabulary, the binding plugin record, and the host-only projection state. */
|
|
2
|
+
import type { ChangeRequestRef, ChangeRequestUpdate } from '@deepseek-ai/dsh-experimental-forge/types';
|
|
3
|
+
import type { SessionSeq } from '@deepseek-ai/dsh-session/types';
|
|
4
|
+
/**
|
|
5
|
+
* How a change request became bound to a Session: `created` when a
|
|
6
|
+
* `gh pr create` result printed its URL, `referenced` when a `gh pr view`,
|
|
7
|
+
* `gh pr edit`, or `gh pr checkout` call named it or its result printed its
|
|
8
|
+
* own URL, `discovered` when a lookup found it for a branch the Session pushed
|
|
9
|
+
* or works on, `tracked` when a caller bound it by URL.
|
|
10
|
+
*/
|
|
11
|
+
export type BindingOrigin = 'created' | 'referenced' | 'discovered' | 'tracked';
|
|
12
|
+
/** Binding evidence that a shell command and its result can carry. */
|
|
13
|
+
export interface CommandEvidence {
|
|
14
|
+
/** Origin of the change request URLs the result prints, or null when the command prints none of its own. */
|
|
15
|
+
readonly urls: 'created' | 'referenced' | null;
|
|
16
|
+
/** Whether the result can report pushed refs. */
|
|
17
|
+
readonly pushes: boolean;
|
|
18
|
+
/** Change request URLs explicitly selected by URL or by number, repository, and host. */
|
|
19
|
+
readonly named: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
/** Payload of the `plugin:forge-session/binding` record. */
|
|
22
|
+
export interface BindingRecord {
|
|
23
|
+
/**
|
|
24
|
+
* `track` binds or restores, `dismiss` hides, `discover` binds a branch lookup,
|
|
25
|
+
* and `reference` binds a CLI selector lookup without restoring dismissed entries.
|
|
26
|
+
*/
|
|
27
|
+
readonly action: 'track' | 'dismiss' | 'discover' | 'reference';
|
|
28
|
+
/** Web URL of the change request. */
|
|
29
|
+
readonly url: string;
|
|
30
|
+
}
|
|
31
|
+
/** One shell call whose result the projection still awaits, with the evidence the call and its result carry. */
|
|
32
|
+
export interface PendingCommand extends CommandEvidence {
|
|
33
|
+
/** Tool call id that pairs the call with its result. */
|
|
34
|
+
readonly callId: string;
|
|
35
|
+
}
|
|
36
|
+
/** One change request remembered by the projection, including hidden ones. */
|
|
37
|
+
export interface BindingState {
|
|
38
|
+
/** Web URL as first recorded. */
|
|
39
|
+
readonly url: string;
|
|
40
|
+
/** How the change request became bound. */
|
|
41
|
+
readonly origin: BindingOrigin;
|
|
42
|
+
/** Whether a dismissal hides the binding. */
|
|
43
|
+
readonly dismissed: boolean;
|
|
44
|
+
}
|
|
45
|
+
/** One branch that a `git push` result reported as updated on a remote. */
|
|
46
|
+
export interface PushedBranch {
|
|
47
|
+
/** Remote as `git push` printed it after `To`. */
|
|
48
|
+
readonly remote: string;
|
|
49
|
+
/** Branch name on the remote. */
|
|
50
|
+
readonly branch: string;
|
|
51
|
+
/** Sequence number of the latest `tool/result` event that reported this branch. */
|
|
52
|
+
readonly seq: SessionSeq;
|
|
53
|
+
}
|
|
54
|
+
/** Host-only projection state folded from shell results and binding records. */
|
|
55
|
+
export interface ForgeChangeRequestsState {
|
|
56
|
+
/** Shell calls awaiting their result, in call order. */
|
|
57
|
+
readonly pending: readonly PendingCommand[];
|
|
58
|
+
/** Bound change requests in first-recorded order. */
|
|
59
|
+
readonly bindings: readonly BindingState[];
|
|
60
|
+
/** Pushed branches, one entry per remote and branch, ordered by latest push. */
|
|
61
|
+
readonly pushes: readonly PushedBranch[];
|
|
62
|
+
}
|
|
63
|
+
/** One change request bound to a Session and not dismissed, with its latest polling result. */
|
|
64
|
+
export interface SessionChangeRequest {
|
|
65
|
+
/** Web URL as first recorded. */
|
|
66
|
+
readonly url: string;
|
|
67
|
+
/** How the change request became bound. */
|
|
68
|
+
readonly origin: BindingOrigin;
|
|
69
|
+
/** Parsed reference, or null when no registered provider serves the URL. */
|
|
70
|
+
readonly ref: ChangeRequestRef | null;
|
|
71
|
+
/** Latest polling result, or null before the first poll and without a provider. */
|
|
72
|
+
readonly update: ChangeRequestUpdate | null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Receives the complete visible list after a binding or provider change, or a polling result.
|
|
76
|
+
* @param changeRequests - every visible binding of the watched Session, in first-recorded order.
|
|
77
|
+
*/
|
|
78
|
+
export type SessionChangeRequestsListener = (changeRequests: readonly SessionChangeRequest[]) => void;
|
|
79
|
+
/** Deployment settings of `forgeSession`. */
|
|
80
|
+
export interface Config {
|
|
81
|
+
/** Deadline in milliseconds for one change request lookup after a push. */
|
|
82
|
+
discoveryTimeoutMs?: number;
|
|
83
|
+
}
|
|
84
|
+
declare module '@deepseek-ai/dsh-session/types' {
|
|
85
|
+
interface PluginRecordMap {
|
|
86
|
+
/** A caller or discovery action that binds, restores, or hides one change request. */
|
|
87
|
+
'plugin:forge-session/binding': BindingRecord;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
declare module '@deepseek-ai/dsh-session-projection/types' {
|
|
91
|
+
interface SessionProjectionMap {
|
|
92
|
+
/** Every change request bound to the Session, hidden ones included, in binding order. */
|
|
93
|
+
forgeChangeRequests: readonly BindingState[];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=types.d.ts.map
|
package/locale/de.json
ADDED
package/locale/en.json
ADDED
package/locale/es.json
ADDED
package/locale/fr.json
ADDED
package/locale/ja.json
ADDED
package/locale/pt.json
ADDED
package/locale/ru.json
ADDED
package/locale/zh.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,88 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-experimental-forge-session",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"description": "Binds change requests to the Session that created, pushed, or tracked them",
|
|
4
|
+
"version": "0.2.2-alpha.3",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"type": "module",
|
|
9
|
+
"main": "lib/index.js",
|
|
10
|
+
"types": "lib/types/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./lib/types/index.d.ts",
|
|
14
|
+
"default": "./lib/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./types": {
|
|
17
|
+
"types": "./lib/types/types.d.ts"
|
|
18
|
+
},
|
|
19
|
+
"./locale/*.json": "./locale/*.json",
|
|
20
|
+
"./src/*": "./src/*",
|
|
21
|
+
"./package.json": "./package.json"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"locale/*.json",
|
|
25
|
+
"lib/index.js",
|
|
26
|
+
"lib/types/**/*.d.ts"
|
|
27
|
+
],
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "git+https://github.com/deepseek-ai/deepseek-harness.git",
|
|
32
|
+
"directory": "packages/experimental/forge-session"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@deepseek-ai/dsh-timeout": "0.2.2-alpha.3",
|
|
36
|
+
"@deepseek-ai/dsh-util-values": "0.2.2-alpha.3",
|
|
37
|
+
"@deepseek-ai/schemastery": "~3.18.6-alpha.2",
|
|
38
|
+
"shell-quote": "^1.12.0",
|
|
39
|
+
"zod": "^4.4.3"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
42
|
+
"@deepseek-ai/cordis": "~4.0.6-alpha.2",
|
|
43
|
+
"@deepseek-ai/dsh-experimental-forge": "0.2.2-alpha.3",
|
|
44
|
+
"@deepseek-ai/dsh-session": "0.2.2-alpha.3",
|
|
45
|
+
"@deepseek-ai/dsh-session-projection": "0.2.2-alpha.3",
|
|
46
|
+
"@deepseek-ai/dsh-shell": "0.2.2-alpha.3",
|
|
47
|
+
"@deepseek-ai/dsh-shell-env": "0.2.2-alpha.3",
|
|
48
|
+
"@deepseek-ai/dsh-tools": "0.2.2-alpha.3",
|
|
49
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.2-alpha.3"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@deepseek-ai/cordis": "~4.0.6-alpha.2",
|
|
53
|
+
"@deepseek-ai/cordis-plugin-include": "~1.0.11-alpha.2",
|
|
54
|
+
"@deepseek-ai/cordis-plugin-loader": "~1.0.7-alpha.2",
|
|
55
|
+
"@deepseek-ai/dsh-agent": "0.2.2-alpha.3",
|
|
56
|
+
"@deepseek-ai/dsh-agent-loop": "0.2.2-alpha.3",
|
|
57
|
+
"@deepseek-ai/dsh-bash-local": "0.2.2-alpha.3",
|
|
58
|
+
"@deepseek-ai/dsh-experimental-forge": "0.2.2-alpha.3",
|
|
59
|
+
"@deepseek-ai/dsh-experimental-forge-github": "0.2.2-alpha.3",
|
|
60
|
+
"@deepseek-ai/dsh-fs-local": "0.2.2-alpha.3",
|
|
61
|
+
"@deepseek-ai/dsh-llm": "0.2.2-alpha.3",
|
|
62
|
+
"@deepseek-ai/dsh-session": "0.2.2-alpha.3",
|
|
63
|
+
"@deepseek-ai/dsh-session-projection": "0.2.2-alpha.3",
|
|
64
|
+
"@deepseek-ai/dsh-shell-env": "0.2.2-alpha.3",
|
|
65
|
+
"@deepseek-ai/dsh-subprocess-local": "0.2.2-alpha.3",
|
|
66
|
+
"@deepseek-ai/dsh-system-prompt": "0.2.2-alpha.3",
|
|
67
|
+
"@deepseek-ai/dsh-tool-bash": "0.2.2-alpha.3",
|
|
68
|
+
"@deepseek-ai/dsh-tool-executor-native": "0.2.2-alpha.3",
|
|
69
|
+
"@deepseek-ai/dsh-tools": "0.2.2-alpha.3",
|
|
70
|
+
"@deepseek-ai/dsh-working-directory": "0.2.2-alpha.3",
|
|
71
|
+
"@deepseek-ai/dsh-shell": "0.2.2-alpha.3",
|
|
72
|
+
"@deepseek-ai/dsh-sandbox-policy": "0.2.2-alpha.3"
|
|
73
|
+
},
|
|
74
|
+
"peerDependenciesMeta": {
|
|
75
|
+
"@deepseek-ai/dsh-shell": {
|
|
76
|
+
"optional": true
|
|
77
|
+
},
|
|
78
|
+
"@deepseek-ai/dsh-shell-env": {
|
|
79
|
+
"optional": true
|
|
80
|
+
},
|
|
81
|
+
"@deepseek-ai/dsh-tools": {
|
|
82
|
+
"optional": true
|
|
83
|
+
},
|
|
84
|
+
"@deepseek-ai/dsh-sandbox-policy": {
|
|
85
|
+
"optional": true
|
|
86
|
+
}
|
|
87
|
+
}
|
|
6
88
|
}
|