@morlay/dsh-session-mode 0.0.7 → 0.0.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/README.md CHANGED
@@ -2,19 +2,23 @@
2
2
 
3
3
  **模式 = agent preset 的会话级扩展**:每个模式给这个会话加六样东西——一段 persona、两组按名收窄的名单(工具与技能
4
4
  各自允许哪些、另外禁掉哪些)、一份 policy 名单(哪些上游裁决规则生效)、instruction / 技能目录 / 动态快照三个开关,
5
- 外加可选的默认模型。模式**不绑 preset**:行清单(工具 / 命令 / 压缩 / 委派)由会话挂着
5
+ 外加可选的默认模型。模式**不限制 preset**:行清单(工具 / 命令 / 压缩 / 委派)由会话挂着
6
6
  的那份 preset 提供,本部署用官方 shipped `standard`(registry 的默认由官方 web-app 给,我们不覆盖);
7
- `config.modes.<id>.preset` 是可选声明,写了才会在切模式时把 preset 切过去。模式清单与默认值就是本行的 `config.modes`:真源在
7
+ `config.modes.<id>.presetsOnly` 是可选的白名单,留空就是不限制、切模式不换 preset,写了才把当前那份落进名单
8
+ (已经在名单里就不动,否则换成名单第一个)。模式清单与默认值就是本行的 `config.modes`:真源在
8
9
  [`src/mode-sources.ts`](./src/mode-sources.ts),行 config 由 [`src/rows.ts`](./src/rows.ts) 渲染;**模式不是 Cordis
9
10
  子树**,选择落成会话事实(`session-mode/selected` 事件 + `sessionMode` 投影)。会话里选模式走本包 client 半的 chip
10
- 与 `GET/POST /session-mode`,且只在**空白会话**成立。
11
+ 与 `GET/POST /session-mode`,且只在**空白会话**成立。本部署三个模式:`coding`(完整编码 Agent)、`chat`
12
+ (只提问与联网)、`noop`(**原样模式**:一份什么都不加的扩展——persona 空、名单全空、三个开关走默认,装配结果与
13
+ "没有模式"时一致;想按上游默认跑、或排查扩展干扰时的对照档)。
11
14
 
12
- **按会话收口也在这个包里**([`src/scope.ts`](./src/scope.ts),模式行内部持有、不发布服务):工具目录与
13
- `tool:<工具名>` section 按同一份合成结果过滤、执行层 guard 挂在该 agent 的 ctx 上(同一份 guard 也按名拒 `skill`
14
- 工具要加载的那一件技能)、技能目录按技能名单删掉被拒的那几行、三个开关
15
- (`instructions` / `skills` / `runtimeContext`)按会话生效——其中 `instructions: false` 与 `skills: false` 是在
16
- `agent/pre-step` 上**丢掉官方两条注入面**(工作区指令、技能目录)。取舍见
17
- [设计 抑制官方注入面](./.agents/designs/20260929-抑制官方注入面.md)。
15
+ **按会话收口也在这个包里**([`src/scope.ts`](./src/scope.ts),模式行内部持有、不发布服务):工具名单、三个开关
16
+ (`instructions` / `skills` / `runtimeContext`)与上游那三条注入面(工作区指令 / 技能目录 / 时钟)都按会话生效。
17
+ 三个开关管的是**每步请求里额外塞进去的文本**(工具可见性归 `allowTools` / `denyTools`):`instructions` 是官方
18
+ `agent-instructions` 的每步注入(`AGENTS.md` 之类)加本通道自己的降级注入,`skills` 是官方 `tool-skill` 的
19
+ **技能目录**(`skill` 工具本身照旧可见),`runtimeContext` 是两条动态快照(文件沙箱策略、审批策略)。
20
+ 机制、抑制面的取舍与代价见[设计 抑制官方注入面](./.agents/designs/20260929-抑制官方注入面.md)与
21
+ [设计 会话模式](./.agents/designs/20260924-会话模式.md)。
18
22
 
19
23
  本包不装配任何行:装配入口在 [`@morlay/session-mode-profile`](../../bundles/session-mode-profile/README.md)
20
24
  (它插 `session-mode`、通道、工具说明与 subagent 那几行)。
@@ -50,12 +54,20 @@
50
54
  skills: false # 显式丢掉官方技能目录的注入;**本部署不写这一项**——推导已给出同一个值(见下)
51
55
  runtimeContext: false # 动态快照(沙箱策略、审批策略)
52
56
  defaultModel: { provider: ollama, model: deepseek-v4.1-flash, reasoningEffort: high }
53
- # preset: standard # 可选:写了才会在切模式时把 preset 切过去(不写 = 保持会话当前那份)
57
+ # presetsOnly: [standard, minimal] # 可选白名单:切模式时把会话的 preset 落进名单(已在名单里就不动,否则换成第一个);不写 = 不限制
54
58
  ```
55
59
 
60
+ 页面上改这份配置有两个入口(读写都是同一份 `config.modes`):插件管理页里**本 bundle 的详情页**
61
+ (`plugins.bundle.config`,key 是 bundle 包名)——"新会话的默认模式 + 每个模式一张可折叠卡片",卡片里按六组分
62
+ 字段,支持增删模式(`noop` 不给删);以及这一行自己的**行配置页**(`plugins.row.config`,key
63
+ `@morlay/session-mode-profile#session-mode`,由通用 schema 表单按 volatile 字段自动生成,是行式的结构视图)。
64
+ 两处都是暂存式写入(改完点保存,唯一的写盘点),改动等 Loader 重挂这一行才对**新会话**生效。形态与取舍见
65
+ [设计 bundle 配置页](./.agents/designs/20261002-bundle配置页.md)。
66
+
56
67
  `skills` **不写就由这个模式自己的工具名单推导**:`(allowTools 留空 ? 全部 : allowTools) − denyTools` 里含 `skill`
57
- 就要技能目录(`allowTools` 留空即"全部",所以只有 `denyTools` 能把它推成 `false`)。本部署两个模式都不写它:
58
- `coding` 留空名单 → `true`,`chat` 的三件里没有 `skill` → `false`。要"工具收窄但目录照旧列"就显式写 `skills: true`。
68
+ 就要技能目录(`allowTools` 留空即"全部",所以只有 `denyTools` 能把它推成 `false`)。本部署三个模式都不写它:
69
+ `coding` 与 `noop` 留空名单 → `true`,`chat` 的三件里没有 `skill` → `false`。要"工具收窄但目录照旧列"就显式写
70
+ `skills: true`。
59
71
 
60
72
  技能名单(`allowSkills` / `denySkills`)收的是**技能名**,与工具名单同一套合成规则(`allowSkills` 留空 = 不设收窄,
61
73
  两份同时命中时 deny 优先),收窄落在两处:`skill-catalog` 那条消息的**正文**(删掉 ``- `<名字>`: <说明>`` 那几行;
@@ -71,7 +83,8 @@
71
83
 
72
84
  写错在装载时就拒绝:`default` 必须在清单里且声明 `main`、`role` 不能是空数组、`defaultModel` 要给全 `provider` 与
73
85
  `model`、`allowPolicies` / `denyPolicies` 里的名字必须是上游那两条 waterfall(`fs/write-intent` /
74
- `fs/edit-intent`)。改动等 Loader 重挂这一行生效,已运行会话不自动换定义。
86
+ `fs/edit-intent`)、退役的 `preset`(单个 preset 的旧写法)还配着值也拒绝——它已经换成 `presetsOnly`。改动等 Loader
87
+ 重挂这一行生效,已运行会话不自动换定义。
75
88
 
76
89
  四处别当成全能开关:`allowTools` **留空就是不设收窄**(用会话挂着的 preset 的全部工具),列了名单时那份 preset
77
90
  没有的工具会**自动跳过**(会话挂着官方 `minimal` 时 `chat` 一件都不剩);`instructions: false` 丢的是官方
@@ -79,7 +92,6 @@
79
92
  (结果被丢掉);开关为 `true`(或 `instructions` 缺省)时这条抑制**零干预**——官方那两行的注入节奏(首次、以及内容
80
93
  有变才注入的增量)照旧;`skills: false` 只丢官方目录的注入,`skill` 工具本身的可见性归 `allowTools`;`denyPolicies` 只改
81
94
  **上游那两条 waterfall** 上的裁决(`tool-fs` 的写 / 改与 `tool-str-replace-editor`),`bash` 之类自己写文件的通路
82
- 不经过它们。取舍见 [ADR 模式不绑定 preset](./.agents/adrs/20260929-模式不绑定preset.md)、
83
- [ADR allowTools 留空即不设收窄](./.agents/adrs/20260929-allowTools留空即不设收窄.md)、
95
+ 不经过它们。取舍见 [ADR 模式不绑定 preset](./.agents/adrs/20260929-模式不绑定preset.md)、[ADR allowTools 留空即不设收窄](./.agents/adrs/20260929-allowTools留空即不设收窄.md)、
84
96
  [设计 按模式的 policy 拦截](./.agents/designs/20260929-按模式的policy拦截.md) 与
85
97
  [设计 抑制官方注入面](./.agents/designs/20260929-抑制官方注入面.md)。
@@ -0,0 +1,131 @@
1
+ import { t as CATALOG_NS } from "./catalog-remote-KXJjDaN6.mjs";
2
+ import { Remote, TypertRemoteService } from "@deepseek-ai/dsh-typert-protocol";
3
+ //#region src/catalog.ts
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
+ };
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value
16
+ }) : obj[key] = value;
17
+ var __name = (target, value) => __defProp(target, "name", {
18
+ value,
19
+ configurable: true
20
+ });
21
+ var __decoratorStart = (base) => [
22
+ ,
23
+ ,
24
+ ,
25
+ __create(base?.[__knownSymbol("metadata")] ?? null)
26
+ ];
27
+ var __decoratorStrings = [
28
+ "class",
29
+ "method",
30
+ "getter",
31
+ "setter",
32
+ "accessor",
33
+ "field",
34
+ "value",
35
+ "get",
36
+ "set"
37
+ ];
38
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
39
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({
40
+ kind: __decoratorStrings[kind],
41
+ name,
42
+ metadata,
43
+ addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null))
44
+ });
45
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
46
+ var __runInitializers = (array, flags, self, value) => {
47
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
48
+ return value;
49
+ };
50
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
51
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
52
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
53
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
54
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {
55
+ get [name]() {
56
+ return __privateGet(this, extra);
57
+ },
58
+ set [name](x) {
59
+ return __privateSet(this, extra, x);
60
+ }
61
+ }, name));
62
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
63
+ for (var i = decorators.length - 1; i >= 0; i--) {
64
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
65
+ if (k) {
66
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
67
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
68
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
69
+ }
70
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {
71
+ get: desc.get,
72
+ set: desc.set
73
+ } : target, ctx), done._ = 1;
74
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
75
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
76
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
77
+ }
78
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
79
+ };
80
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
81
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError("Cannot use the \"in\" operator on this value") : member.has(obj);
82
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
83
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
84
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
85
+ var _remoteExportList_dec;
86
+ var _a;
87
+ var _init;
88
+ function cwdOf(agent) {
89
+ const cwd = agent.session?.header?.cwd;
90
+ return typeof cwd === "string" ? cwd : void 0;
91
+ }
92
+ var SessionModeCatalog = class extends (_a = TypertRemoteService, _remoteExportList_dec = [Remote("list")], _a) {
93
+ /**
94
+ * @param ctx - owning context (the `session-mode` row).
95
+ */
96
+ constructor(ctx) {
97
+ super(ctx, CATALOG_NS);
98
+ __runInitializers(_init, 5, this);
99
+ }
100
+ async remoteExportList() {
101
+ return {
102
+ tools: this.toolNames(),
103
+ skills: await this.skillNames()
104
+ };
105
+ }
106
+ toolNames() {
107
+ const tools = this.ctx.get("tools");
108
+ if (tools === void 0) return [];
109
+ const names = new Set(tools.schemas().map((schema) => String(schema.name)));
110
+ for (const agent of this.agents()) for (const schema of tools.schemas(agent)) names.add(String(schema.name));
111
+ return [...names];
112
+ }
113
+ async skillNames() {
114
+ const skills = this.ctx.get("skills");
115
+ if (skills === void 0) return [];
116
+ const names = new Set((await skills.list()).map((row) => row.name));
117
+ for (const agent of this.agents()) for (const row of await skills.list({
118
+ scope: agent,
119
+ cwd: cwdOf(agent)
120
+ })) names.add(row.name);
121
+ return [...names];
122
+ }
123
+ agents() {
124
+ return this.ctx.get("agents")?.list() ?? [];
125
+ }
126
+ };
127
+ _init = __decoratorStart(_a);
128
+ __decorateElement(_init, 1, "remoteExportList", _remoteExportList_dec, SessionModeCatalog);
129
+ __decoratorMetadata(_init, SessionModeCatalog);
130
+ //#endregion
131
+ export { SessionModeCatalog as t };
@@ -0,0 +1,136 @@
1
+ const require_catalog_remote = require("./catalog-remote-B7ZgYqun.cjs");
2
+ let _deepseek_ai_dsh_typert_protocol = require("@deepseek-ai/dsh-typert-protocol");
3
+ //#region src/catalog.ts
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
+ };
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value
16
+ }) : obj[key] = value;
17
+ var __name = (target, value) => __defProp(target, "name", {
18
+ value,
19
+ configurable: true
20
+ });
21
+ var __decoratorStart = (base) => [
22
+ ,
23
+ ,
24
+ ,
25
+ __create(base?.[__knownSymbol("metadata")] ?? null)
26
+ ];
27
+ var __decoratorStrings = [
28
+ "class",
29
+ "method",
30
+ "getter",
31
+ "setter",
32
+ "accessor",
33
+ "field",
34
+ "value",
35
+ "get",
36
+ "set"
37
+ ];
38
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
39
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({
40
+ kind: __decoratorStrings[kind],
41
+ name,
42
+ metadata,
43
+ addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null))
44
+ });
45
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
46
+ var __runInitializers = (array, flags, self, value) => {
47
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
48
+ return value;
49
+ };
50
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
51
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
52
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
53
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
54
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {
55
+ get [name]() {
56
+ return __privateGet(this, extra);
57
+ },
58
+ set [name](x) {
59
+ return __privateSet(this, extra, x);
60
+ }
61
+ }, name));
62
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
63
+ for (var i = decorators.length - 1; i >= 0; i--) {
64
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
65
+ if (k) {
66
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
67
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
68
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
69
+ }
70
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : {
71
+ get: desc.get,
72
+ set: desc.set
73
+ } : target, ctx), done._ = 1;
74
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
75
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
76
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
77
+ }
78
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
79
+ };
80
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
81
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError("Cannot use the \"in\" operator on this value") : member.has(obj);
82
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
83
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
84
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
85
+ var _remoteExportList_dec;
86
+ var _a;
87
+ var _init;
88
+ function cwdOf(agent) {
89
+ const cwd = agent.session?.header?.cwd;
90
+ return typeof cwd === "string" ? cwd : void 0;
91
+ }
92
+ var SessionModeCatalog = class extends (_a = _deepseek_ai_dsh_typert_protocol.TypertRemoteService, _remoteExportList_dec = [(0, _deepseek_ai_dsh_typert_protocol.Remote)("list")], _a) {
93
+ /**
94
+ * @param ctx - owning context (the `session-mode` row).
95
+ */
96
+ constructor(ctx) {
97
+ super(ctx, require_catalog_remote.CATALOG_NS);
98
+ __runInitializers(_init, 5, this);
99
+ }
100
+ async remoteExportList() {
101
+ return {
102
+ tools: this.toolNames(),
103
+ skills: await this.skillNames()
104
+ };
105
+ }
106
+ toolNames() {
107
+ const tools = this.ctx.get("tools");
108
+ if (tools === void 0) return [];
109
+ const names = new Set(tools.schemas().map((schema) => String(schema.name)));
110
+ for (const agent of this.agents()) for (const schema of tools.schemas(agent)) names.add(String(schema.name));
111
+ return [...names];
112
+ }
113
+ async skillNames() {
114
+ const skills = this.ctx.get("skills");
115
+ if (skills === void 0) return [];
116
+ const names = new Set((await skills.list()).map((row) => row.name));
117
+ for (const agent of this.agents()) for (const row of await skills.list({
118
+ scope: agent,
119
+ cwd: cwdOf(agent)
120
+ })) names.add(row.name);
121
+ return [...names];
122
+ }
123
+ agents() {
124
+ return this.ctx.get("agents")?.list() ?? [];
125
+ }
126
+ };
127
+ _init = __decoratorStart(_a);
128
+ __decorateElement(_init, 1, "remoteExportList", _remoteExportList_dec, SessionModeCatalog);
129
+ __decoratorMetadata(_init, SessionModeCatalog);
130
+ //#endregion
131
+ Object.defineProperty(exports, "SessionModeCatalog", {
132
+ enumerable: true,
133
+ get: function() {
134
+ return SessionModeCatalog;
135
+ }
136
+ });
@@ -0,0 +1,28 @@
1
+ //#region src/catalog-remote.ts
2
+ const CATALOG_NS = "sessionModeCatalog";
3
+ const SESSION_MODE_CATALOG_REMOTE = {
4
+ package: "@morlay/dsh-session-mode",
5
+ descriptors: [{
6
+ id: "@morlay/dsh-session-mode#sessionModeCatalog/list",
7
+ service: CATALOG_NS,
8
+ namespace: CATALOG_NS,
9
+ method: "list",
10
+ implementation: "remoteExportList",
11
+ invocation: { kind: "direct" },
12
+ parameters: [],
13
+ result: { mode: "src-json" }
14
+ }]
15
+ };
16
+ //#endregion
17
+ Object.defineProperty(exports, "CATALOG_NS", {
18
+ enumerable: true,
19
+ get: function() {
20
+ return CATALOG_NS;
21
+ }
22
+ });
23
+ Object.defineProperty(exports, "SESSION_MODE_CATALOG_REMOTE", {
24
+ enumerable: true,
25
+ get: function() {
26
+ return SESSION_MODE_CATALOG_REMOTE;
27
+ }
28
+ });
@@ -0,0 +1,17 @@
1
+ //#region src/catalog-remote.ts
2
+ const CATALOG_NS = "sessionModeCatalog";
3
+ const SESSION_MODE_CATALOG_REMOTE = {
4
+ package: "@morlay/dsh-session-mode",
5
+ descriptors: [{
6
+ id: "@morlay/dsh-session-mode#sessionModeCatalog/list",
7
+ service: CATALOG_NS,
8
+ namespace: CATALOG_NS,
9
+ method: "list",
10
+ implementation: "remoteExportList",
11
+ invocation: { kind: "direct" },
12
+ parameters: [],
13
+ result: { mode: "src-json" }
14
+ }]
15
+ };
16
+ //#endregion
17
+ export { SESSION_MODE_CATALOG_REMOTE as n, CATALOG_NS as t };