@flowy-agent-store/protocol 0.1.0-beta.4 → 0.1.0-beta.6
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/dist/index.cjs +29 -2
- package/dist/index.d.cts +69 -9
- package/dist/index.d.mts +69 -9
- package/dist/index.mjs +29 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -29,9 +29,36 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
29
29
|
* party can run an installed MCP tool while the connection and its credentials
|
|
30
30
|
* stay on the host. **`fp-1` changes the shape only** (date stamp → counter): a
|
|
31
31
|
* `2026-…` value invites being read as a release date, and no wire behaviour
|
|
32
|
-
* changed with the rename.
|
|
32
|
+
* changed with the rename. **`fp-2` carries the tools' parameters**
|
|
33
|
+
* (`ConnectorTool.input_schema`, plus `tools_truncated` on `ConnectorDetail`
|
|
34
|
+
* and `ConnectorProbeResult`): a caller that must *name* a tool to be granted it
|
|
35
|
+
* should be able to read what that tool takes. It is the counterpart of the
|
|
36
|
+
* host's `[connector_proxy]` grant moving from one tool at a time to the
|
|
37
|
+
* connector (doc `26`). **`fp-3` makes a Skill selectable per turn**:
|
|
38
|
+
* `conversation/send` gains an optional `mentions` list whose only honoured kind
|
|
39
|
+
* is `skill`, so one turn can mount a Skill's instructions without rewriting the
|
|
40
|
+
* conversation's create-time snapshot (doc `27` 阶段 1). **`fp-4` lets a
|
|
41
|
+
* conversation be created as an installed expert**: `conversation/create` gains
|
|
42
|
+
* an optional `agent_id`, whose Definition supplies the chat's preset identity
|
|
43
|
+
* plus its own Skill and Connector fences — frozen at creation, since none of
|
|
44
|
+
* those keys is mutable afterwards (doc `27` 阶段 2a). **`fp-5` opens a Team's
|
|
45
|
+
* Leader the same way**: an optional `team_id` runs the `team/run` orchestration
|
|
46
|
+
* (members, template, fences) but stops before the goal turn, so the client
|
|
47
|
+
* speaks first; `agent_id` and `team_id` are mutually exclusive (阶段 2b).
|
|
48
|
+
* **`fp-6` makes the model and the reasoning level selectable per call**:
|
|
49
|
+
* `conversation/send` and `agent/run` each gain an optional `model` and
|
|
50
|
+
* `reasoning_effort`. The scope is deliberately the **conversation** (send) and
|
|
51
|
+
* the **run** (agent/run), not "just this turn": the Nomi runtime is built from
|
|
52
|
+
* the persisted row, so a send-carried value is a sticky switch that takes
|
|
53
|
+
* effect on that very turn (doc `29` §4). `ConversationView` also gains
|
|
54
|
+
* `reasoning_effort`, because a setting that can be written by three methods but
|
|
55
|
+
* read back by none is not a setting a client can honour (doc `29` §5.5).
|
|
56
|
+
* **`fp-7` adds the `zip` marketplace source kind**: `market/add` accepts
|
|
57
|
+
* `source_kind: "zip"`, one archive whose root *is* the market root. The
|
|
58
|
+
* official bundles move to it because the old `url` form made a first fetch
|
|
59
|
+
* mirror 14,714 files (611 MiB) for `experts` alone (doc `30`).
|
|
33
60
|
*/
|
|
34
|
-
const APP_SERVER_PROTOCOL_VERSION = "fp-
|
|
61
|
+
const APP_SERVER_PROTOCOL_VERSION = "fp-7";
|
|
35
62
|
//#endregion
|
|
36
63
|
//#region src/errors.ts
|
|
37
64
|
var AppServerError = class extends Error {
|
package/dist/index.d.cts
CHANGED
|
@@ -28,9 +28,36 @@
|
|
|
28
28
|
* party can run an installed MCP tool while the connection and its credentials
|
|
29
29
|
* stay on the host. **`fp-1` changes the shape only** (date stamp → counter): a
|
|
30
30
|
* `2026-…` value invites being read as a release date, and no wire behaviour
|
|
31
|
-
* changed with the rename.
|
|
31
|
+
* changed with the rename. **`fp-2` carries the tools' parameters**
|
|
32
|
+
* (`ConnectorTool.input_schema`, plus `tools_truncated` on `ConnectorDetail`
|
|
33
|
+
* and `ConnectorProbeResult`): a caller that must *name* a tool to be granted it
|
|
34
|
+
* should be able to read what that tool takes. It is the counterpart of the
|
|
35
|
+
* host's `[connector_proxy]` grant moving from one tool at a time to the
|
|
36
|
+
* connector (doc `26`). **`fp-3` makes a Skill selectable per turn**:
|
|
37
|
+
* `conversation/send` gains an optional `mentions` list whose only honoured kind
|
|
38
|
+
* is `skill`, so one turn can mount a Skill's instructions without rewriting the
|
|
39
|
+
* conversation's create-time snapshot (doc `27` 阶段 1). **`fp-4` lets a
|
|
40
|
+
* conversation be created as an installed expert**: `conversation/create` gains
|
|
41
|
+
* an optional `agent_id`, whose Definition supplies the chat's preset identity
|
|
42
|
+
* plus its own Skill and Connector fences — frozen at creation, since none of
|
|
43
|
+
* those keys is mutable afterwards (doc `27` 阶段 2a). **`fp-5` opens a Team's
|
|
44
|
+
* Leader the same way**: an optional `team_id` runs the `team/run` orchestration
|
|
45
|
+
* (members, template, fences) but stops before the goal turn, so the client
|
|
46
|
+
* speaks first; `agent_id` and `team_id` are mutually exclusive (阶段 2b).
|
|
47
|
+
* **`fp-6` makes the model and the reasoning level selectable per call**:
|
|
48
|
+
* `conversation/send` and `agent/run` each gain an optional `model` and
|
|
49
|
+
* `reasoning_effort`. The scope is deliberately the **conversation** (send) and
|
|
50
|
+
* the **run** (agent/run), not "just this turn": the Nomi runtime is built from
|
|
51
|
+
* the persisted row, so a send-carried value is a sticky switch that takes
|
|
52
|
+
* effect on that very turn (doc `29` §4). `ConversationView` also gains
|
|
53
|
+
* `reasoning_effort`, because a setting that can be written by three methods but
|
|
54
|
+
* read back by none is not a setting a client can honour (doc `29` §5.5).
|
|
55
|
+
* **`fp-7` adds the `zip` marketplace source kind**: `market/add` accepts
|
|
56
|
+
* `source_kind: "zip"`, one archive whose root *is* the market root. The
|
|
57
|
+
* official bundles move to it because the old `url` form made a first fetch
|
|
58
|
+
* mirror 14,714 files (611 MiB) for `experts` alone (doc `30`).
|
|
32
59
|
*/
|
|
33
|
-
export declare const APP_SERVER_PROTOCOL_VERSION = "fp-
|
|
60
|
+
export declare const APP_SERVER_PROTOCOL_VERSION = "fp-7";
|
|
34
61
|
export interface JsonRpcRequest {
|
|
35
62
|
jsonrpc: "2.0";
|
|
36
63
|
id: number | string;
|
|
@@ -151,10 +178,10 @@ export interface Capabilities {
|
|
|
151
178
|
* The connector **call proxy** (`connector/call`, doc 24 §5).
|
|
152
179
|
*
|
|
153
180
|
* Separate from `connectors` on purpose: the catalog can be wired without the
|
|
154
|
-
* proxy, and
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
181
|
+
* proxy, and a host may wire the proxy while its `[connector_proxy]` table is
|
|
182
|
+
* absent or disabled, in which case every call answers `policy_denied`. This
|
|
183
|
+
* flag says the *method* exists, not that any tool is callable; the host
|
|
184
|
+
* operator's own config decides that (doc `26` §4).
|
|
158
185
|
*/
|
|
159
186
|
connector_calls: boolean;
|
|
160
187
|
run_notifications: boolean;
|
|
@@ -246,6 +273,13 @@ export interface AgentRunInput {
|
|
|
246
273
|
idempotencyKey?: string;
|
|
247
274
|
/** Structured `@` mentions resolved by the composer (docs/agent-store/05 §4.7). */
|
|
248
275
|
mentions?: MentionRef[];
|
|
276
|
+
/**
|
|
277
|
+
* Run-scoped model (doc `29` §6.1). Wins over the preset's own model **and**
|
|
278
|
+
* over the host default: explicit > preset > `~/.agent-store/config.toml`.
|
|
279
|
+
*/
|
|
280
|
+
model?: ProviderWithModel;
|
|
281
|
+
/** Run-scoped OpenAI-style reasoning effort (doc `29` §6.1); applies to every attempt of the run. */
|
|
282
|
+
reasoningEffort?: ReasoningEffort | string;
|
|
249
283
|
}
|
|
250
284
|
export interface AgentRunRequestWire {
|
|
251
285
|
agent_id: string;
|
|
@@ -258,6 +292,8 @@ export interface AgentRunRequestWire {
|
|
|
258
292
|
command_id?: string;
|
|
259
293
|
idempotency_key?: string;
|
|
260
294
|
mentions?: MentionRef[];
|
|
295
|
+
model?: ProviderWithModel;
|
|
296
|
+
reasoning_effort?: string;
|
|
261
297
|
}
|
|
262
298
|
export interface RunReceipt {
|
|
263
299
|
run_id: string;
|
|
@@ -431,6 +467,8 @@ export interface ConversationCreateInput {
|
|
|
431
467
|
model?: ProviderWithModel;
|
|
432
468
|
workspaceId?: string;
|
|
433
469
|
reasoningEffort?: string;
|
|
470
|
+
agentId?: string;
|
|
471
|
+
teamId?: string;
|
|
434
472
|
}
|
|
435
473
|
export interface ConversationUpdateInput {
|
|
436
474
|
name?: string;
|
|
@@ -469,6 +507,12 @@ export interface ConversationView {
|
|
|
469
507
|
conversation_id: string;
|
|
470
508
|
name: string;
|
|
471
509
|
model: ProviderWithModel;
|
|
510
|
+
/**
|
|
511
|
+
* The conversation's current reasoning effort (doc `29` §5.5). Absent = not
|
|
512
|
+
* specified. `create` / `update` / `send` can all write it, so the view has to
|
|
513
|
+
* say what it is — otherwise the setting is write-only.
|
|
514
|
+
*/
|
|
515
|
+
reasoning_effort?: string | null;
|
|
472
516
|
status: string;
|
|
473
517
|
created_at: number;
|
|
474
518
|
modified_at: number;
|
|
@@ -840,6 +884,14 @@ export interface ConnectorSummary {
|
|
|
840
884
|
export interface ConnectorTool {
|
|
841
885
|
name: string;
|
|
842
886
|
description?: string | null;
|
|
887
|
+
/**
|
|
888
|
+
* The upstream `tools/list` `inputSchema`, **verbatim** (doc `26` §5).
|
|
889
|
+
*
|
|
890
|
+
* Absent when the server published none, or when it was omitted to stay
|
|
891
|
+
* inside the host's tools budget — see `tools_truncated` on the response. It
|
|
892
|
+
* carries no transport, header or env value: only the tool's own parameters.
|
|
893
|
+
*/
|
|
894
|
+
input_schema?: unknown;
|
|
843
895
|
}
|
|
844
896
|
export interface OAuthStatusView {
|
|
845
897
|
state: "authenticated" | "not_authenticated" | "reauthorization_required" | string;
|
|
@@ -849,6 +901,12 @@ export interface OAuthStatusView {
|
|
|
849
901
|
export interface ConnectorDetail extends ConnectorSummary {
|
|
850
902
|
tool_filter?: string | null;
|
|
851
903
|
tools: ConnectorTool[];
|
|
904
|
+
/**
|
|
905
|
+
* Some `input_schema` values were omitted to stay inside the host's tools
|
|
906
|
+
* budget. Names and descriptions are always kept, and a schema is only ever
|
|
907
|
+
* carried whole — never truncated. `false` also means "nothing was omitted".
|
|
908
|
+
*/
|
|
909
|
+
tools_truncated: boolean;
|
|
852
910
|
auth_status?: OAuthStatusView | null;
|
|
853
911
|
source: string;
|
|
854
912
|
compatibility_status: CompatibilityStatus;
|
|
@@ -863,6 +921,8 @@ export interface ConnectorProbeResult {
|
|
|
863
921
|
connector_id: string;
|
|
864
922
|
success: boolean;
|
|
865
923
|
tools?: ConnectorTool[] | null;
|
|
924
|
+
/** Same rule as `ConnectorDetail.tools_truncated`: an honest omission. */
|
|
925
|
+
tools_truncated: boolean;
|
|
866
926
|
error?: string | null;
|
|
867
927
|
code?: string | null;
|
|
868
928
|
}
|
|
@@ -1007,12 +1067,12 @@ export interface InstallOutcome {
|
|
|
1007
1067
|
code?: string;
|
|
1008
1068
|
message?: string;
|
|
1009
1069
|
}
|
|
1010
|
-
/** Wire-marketplace source kinds (Phase A: directory only). */
|
|
1011
|
-
export type MarketplaceSourceKind = "directory" | "github" | "git" | "url";
|
|
1070
|
+
/** Wire-marketplace source kinds (Phase A: directory only; `zip` since `fp-7`). */
|
|
1071
|
+
export type MarketplaceSourceKind = "directory" | "github" | "git" | "url" | "zip";
|
|
1012
1072
|
export interface MarketplaceAddRequest {
|
|
1013
1073
|
name?: string;
|
|
1014
1074
|
source_kind: MarketplaceSourceKind;
|
|
1015
|
-
/** Local directory path / owner/repo / Git URL / HTTP URL. */
|
|
1075
|
+
/** Local directory path / owner/repo / Git URL / HTTP URL / archive URL. */
|
|
1016
1076
|
source: string;
|
|
1017
1077
|
}
|
|
1018
1078
|
export interface MarketplaceSummary {
|
package/dist/index.d.mts
CHANGED
|
@@ -28,9 +28,36 @@
|
|
|
28
28
|
* party can run an installed MCP tool while the connection and its credentials
|
|
29
29
|
* stay on the host. **`fp-1` changes the shape only** (date stamp → counter): a
|
|
30
30
|
* `2026-…` value invites being read as a release date, and no wire behaviour
|
|
31
|
-
* changed with the rename.
|
|
31
|
+
* changed with the rename. **`fp-2` carries the tools' parameters**
|
|
32
|
+
* (`ConnectorTool.input_schema`, plus `tools_truncated` on `ConnectorDetail`
|
|
33
|
+
* and `ConnectorProbeResult`): a caller that must *name* a tool to be granted it
|
|
34
|
+
* should be able to read what that tool takes. It is the counterpart of the
|
|
35
|
+
* host's `[connector_proxy]` grant moving from one tool at a time to the
|
|
36
|
+
* connector (doc `26`). **`fp-3` makes a Skill selectable per turn**:
|
|
37
|
+
* `conversation/send` gains an optional `mentions` list whose only honoured kind
|
|
38
|
+
* is `skill`, so one turn can mount a Skill's instructions without rewriting the
|
|
39
|
+
* conversation's create-time snapshot (doc `27` 阶段 1). **`fp-4` lets a
|
|
40
|
+
* conversation be created as an installed expert**: `conversation/create` gains
|
|
41
|
+
* an optional `agent_id`, whose Definition supplies the chat's preset identity
|
|
42
|
+
* plus its own Skill and Connector fences — frozen at creation, since none of
|
|
43
|
+
* those keys is mutable afterwards (doc `27` 阶段 2a). **`fp-5` opens a Team's
|
|
44
|
+
* Leader the same way**: an optional `team_id` runs the `team/run` orchestration
|
|
45
|
+
* (members, template, fences) but stops before the goal turn, so the client
|
|
46
|
+
* speaks first; `agent_id` and `team_id` are mutually exclusive (阶段 2b).
|
|
47
|
+
* **`fp-6` makes the model and the reasoning level selectable per call**:
|
|
48
|
+
* `conversation/send` and `agent/run` each gain an optional `model` and
|
|
49
|
+
* `reasoning_effort`. The scope is deliberately the **conversation** (send) and
|
|
50
|
+
* the **run** (agent/run), not "just this turn": the Nomi runtime is built from
|
|
51
|
+
* the persisted row, so a send-carried value is a sticky switch that takes
|
|
52
|
+
* effect on that very turn (doc `29` §4). `ConversationView` also gains
|
|
53
|
+
* `reasoning_effort`, because a setting that can be written by three methods but
|
|
54
|
+
* read back by none is not a setting a client can honour (doc `29` §5.5).
|
|
55
|
+
* **`fp-7` adds the `zip` marketplace source kind**: `market/add` accepts
|
|
56
|
+
* `source_kind: "zip"`, one archive whose root *is* the market root. The
|
|
57
|
+
* official bundles move to it because the old `url` form made a first fetch
|
|
58
|
+
* mirror 14,714 files (611 MiB) for `experts` alone (doc `30`).
|
|
32
59
|
*/
|
|
33
|
-
export declare const APP_SERVER_PROTOCOL_VERSION = "fp-
|
|
60
|
+
export declare const APP_SERVER_PROTOCOL_VERSION = "fp-7";
|
|
34
61
|
export interface JsonRpcRequest {
|
|
35
62
|
jsonrpc: "2.0";
|
|
36
63
|
id: number | string;
|
|
@@ -151,10 +178,10 @@ export interface Capabilities {
|
|
|
151
178
|
* The connector **call proxy** (`connector/call`, doc 24 §5).
|
|
152
179
|
*
|
|
153
180
|
* Separate from `connectors` on purpose: the catalog can be wired without the
|
|
154
|
-
* proxy, and
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
181
|
+
* proxy, and a host may wire the proxy while its `[connector_proxy]` table is
|
|
182
|
+
* absent or disabled, in which case every call answers `policy_denied`. This
|
|
183
|
+
* flag says the *method* exists, not that any tool is callable; the host
|
|
184
|
+
* operator's own config decides that (doc `26` §4).
|
|
158
185
|
*/
|
|
159
186
|
connector_calls: boolean;
|
|
160
187
|
run_notifications: boolean;
|
|
@@ -246,6 +273,13 @@ export interface AgentRunInput {
|
|
|
246
273
|
idempotencyKey?: string;
|
|
247
274
|
/** Structured `@` mentions resolved by the composer (docs/agent-store/05 §4.7). */
|
|
248
275
|
mentions?: MentionRef[];
|
|
276
|
+
/**
|
|
277
|
+
* Run-scoped model (doc `29` §6.1). Wins over the preset's own model **and**
|
|
278
|
+
* over the host default: explicit > preset > `~/.agent-store/config.toml`.
|
|
279
|
+
*/
|
|
280
|
+
model?: ProviderWithModel;
|
|
281
|
+
/** Run-scoped OpenAI-style reasoning effort (doc `29` §6.1); applies to every attempt of the run. */
|
|
282
|
+
reasoningEffort?: ReasoningEffort | string;
|
|
249
283
|
}
|
|
250
284
|
export interface AgentRunRequestWire {
|
|
251
285
|
agent_id: string;
|
|
@@ -258,6 +292,8 @@ export interface AgentRunRequestWire {
|
|
|
258
292
|
command_id?: string;
|
|
259
293
|
idempotency_key?: string;
|
|
260
294
|
mentions?: MentionRef[];
|
|
295
|
+
model?: ProviderWithModel;
|
|
296
|
+
reasoning_effort?: string;
|
|
261
297
|
}
|
|
262
298
|
export interface RunReceipt {
|
|
263
299
|
run_id: string;
|
|
@@ -431,6 +467,8 @@ export interface ConversationCreateInput {
|
|
|
431
467
|
model?: ProviderWithModel;
|
|
432
468
|
workspaceId?: string;
|
|
433
469
|
reasoningEffort?: string;
|
|
470
|
+
agentId?: string;
|
|
471
|
+
teamId?: string;
|
|
434
472
|
}
|
|
435
473
|
export interface ConversationUpdateInput {
|
|
436
474
|
name?: string;
|
|
@@ -469,6 +507,12 @@ export interface ConversationView {
|
|
|
469
507
|
conversation_id: string;
|
|
470
508
|
name: string;
|
|
471
509
|
model: ProviderWithModel;
|
|
510
|
+
/**
|
|
511
|
+
* The conversation's current reasoning effort (doc `29` §5.5). Absent = not
|
|
512
|
+
* specified. `create` / `update` / `send` can all write it, so the view has to
|
|
513
|
+
* say what it is — otherwise the setting is write-only.
|
|
514
|
+
*/
|
|
515
|
+
reasoning_effort?: string | null;
|
|
472
516
|
status: string;
|
|
473
517
|
created_at: number;
|
|
474
518
|
modified_at: number;
|
|
@@ -840,6 +884,14 @@ export interface ConnectorSummary {
|
|
|
840
884
|
export interface ConnectorTool {
|
|
841
885
|
name: string;
|
|
842
886
|
description?: string | null;
|
|
887
|
+
/**
|
|
888
|
+
* The upstream `tools/list` `inputSchema`, **verbatim** (doc `26` §5).
|
|
889
|
+
*
|
|
890
|
+
* Absent when the server published none, or when it was omitted to stay
|
|
891
|
+
* inside the host's tools budget — see `tools_truncated` on the response. It
|
|
892
|
+
* carries no transport, header or env value: only the tool's own parameters.
|
|
893
|
+
*/
|
|
894
|
+
input_schema?: unknown;
|
|
843
895
|
}
|
|
844
896
|
export interface OAuthStatusView {
|
|
845
897
|
state: "authenticated" | "not_authenticated" | "reauthorization_required" | string;
|
|
@@ -849,6 +901,12 @@ export interface OAuthStatusView {
|
|
|
849
901
|
export interface ConnectorDetail extends ConnectorSummary {
|
|
850
902
|
tool_filter?: string | null;
|
|
851
903
|
tools: ConnectorTool[];
|
|
904
|
+
/**
|
|
905
|
+
* Some `input_schema` values were omitted to stay inside the host's tools
|
|
906
|
+
* budget. Names and descriptions are always kept, and a schema is only ever
|
|
907
|
+
* carried whole — never truncated. `false` also means "nothing was omitted".
|
|
908
|
+
*/
|
|
909
|
+
tools_truncated: boolean;
|
|
852
910
|
auth_status?: OAuthStatusView | null;
|
|
853
911
|
source: string;
|
|
854
912
|
compatibility_status: CompatibilityStatus;
|
|
@@ -863,6 +921,8 @@ export interface ConnectorProbeResult {
|
|
|
863
921
|
connector_id: string;
|
|
864
922
|
success: boolean;
|
|
865
923
|
tools?: ConnectorTool[] | null;
|
|
924
|
+
/** Same rule as `ConnectorDetail.tools_truncated`: an honest omission. */
|
|
925
|
+
tools_truncated: boolean;
|
|
866
926
|
error?: string | null;
|
|
867
927
|
code?: string | null;
|
|
868
928
|
}
|
|
@@ -1007,12 +1067,12 @@ export interface InstallOutcome {
|
|
|
1007
1067
|
code?: string;
|
|
1008
1068
|
message?: string;
|
|
1009
1069
|
}
|
|
1010
|
-
/** Wire-marketplace source kinds (Phase A: directory only). */
|
|
1011
|
-
export type MarketplaceSourceKind = "directory" | "github" | "git" | "url";
|
|
1070
|
+
/** Wire-marketplace source kinds (Phase A: directory only; `zip` since `fp-7`). */
|
|
1071
|
+
export type MarketplaceSourceKind = "directory" | "github" | "git" | "url" | "zip";
|
|
1012
1072
|
export interface MarketplaceAddRequest {
|
|
1013
1073
|
name?: string;
|
|
1014
1074
|
source_kind: MarketplaceSourceKind;
|
|
1015
|
-
/** Local directory path / owner/repo / Git URL / HTTP URL. */
|
|
1075
|
+
/** Local directory path / owner/repo / Git URL / HTTP URL / archive URL. */
|
|
1016
1076
|
source: string;
|
|
1017
1077
|
}
|
|
1018
1078
|
export interface MarketplaceSummary {
|
package/dist/index.mjs
CHANGED
|
@@ -28,9 +28,36 @@
|
|
|
28
28
|
* party can run an installed MCP tool while the connection and its credentials
|
|
29
29
|
* stay on the host. **`fp-1` changes the shape only** (date stamp → counter): a
|
|
30
30
|
* `2026-…` value invites being read as a release date, and no wire behaviour
|
|
31
|
-
* changed with the rename.
|
|
31
|
+
* changed with the rename. **`fp-2` carries the tools' parameters**
|
|
32
|
+
* (`ConnectorTool.input_schema`, plus `tools_truncated` on `ConnectorDetail`
|
|
33
|
+
* and `ConnectorProbeResult`): a caller that must *name* a tool to be granted it
|
|
34
|
+
* should be able to read what that tool takes. It is the counterpart of the
|
|
35
|
+
* host's `[connector_proxy]` grant moving from one tool at a time to the
|
|
36
|
+
* connector (doc `26`). **`fp-3` makes a Skill selectable per turn**:
|
|
37
|
+
* `conversation/send` gains an optional `mentions` list whose only honoured kind
|
|
38
|
+
* is `skill`, so one turn can mount a Skill's instructions without rewriting the
|
|
39
|
+
* conversation's create-time snapshot (doc `27` 阶段 1). **`fp-4` lets a
|
|
40
|
+
* conversation be created as an installed expert**: `conversation/create` gains
|
|
41
|
+
* an optional `agent_id`, whose Definition supplies the chat's preset identity
|
|
42
|
+
* plus its own Skill and Connector fences — frozen at creation, since none of
|
|
43
|
+
* those keys is mutable afterwards (doc `27` 阶段 2a). **`fp-5` opens a Team's
|
|
44
|
+
* Leader the same way**: an optional `team_id` runs the `team/run` orchestration
|
|
45
|
+
* (members, template, fences) but stops before the goal turn, so the client
|
|
46
|
+
* speaks first; `agent_id` and `team_id` are mutually exclusive (阶段 2b).
|
|
47
|
+
* **`fp-6` makes the model and the reasoning level selectable per call**:
|
|
48
|
+
* `conversation/send` and `agent/run` each gain an optional `model` and
|
|
49
|
+
* `reasoning_effort`. The scope is deliberately the **conversation** (send) and
|
|
50
|
+
* the **run** (agent/run), not "just this turn": the Nomi runtime is built from
|
|
51
|
+
* the persisted row, so a send-carried value is a sticky switch that takes
|
|
52
|
+
* effect on that very turn (doc `29` §4). `ConversationView` also gains
|
|
53
|
+
* `reasoning_effort`, because a setting that can be written by three methods but
|
|
54
|
+
* read back by none is not a setting a client can honour (doc `29` §5.5).
|
|
55
|
+
* **`fp-7` adds the `zip` marketplace source kind**: `market/add` accepts
|
|
56
|
+
* `source_kind: "zip"`, one archive whose root *is* the market root. The
|
|
57
|
+
* official bundles move to it because the old `url` form made a first fetch
|
|
58
|
+
* mirror 14,714 files (611 MiB) for `experts` alone (doc `30`).
|
|
32
59
|
*/
|
|
33
|
-
const APP_SERVER_PROTOCOL_VERSION = "fp-
|
|
60
|
+
const APP_SERVER_PROTOCOL_VERSION = "fp-7";
|
|
34
61
|
//#endregion
|
|
35
62
|
//#region src/errors.ts
|
|
36
63
|
var AppServerError = class extends Error {
|
package/package.json
CHANGED