@flowy-agent-store/protocol 0.1.0-beta.8 → 0.1.0-beta.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/dist/index.cjs +8 -1
- package/dist/index.d.cts +85 -1
- package/dist/index.d.mts +85 -1
- package/dist/index.mjs +8 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -63,8 +63,15 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
63
63
|
* shape, but the response carries the Agent Markdown body, which the catalog
|
|
64
64
|
* faces deliberately never do; both methods are WebSocket-only, so the
|
|
65
65
|
* documented route split becomes `48 / 73` (doc `32`).
|
|
66
|
+
* **`fp-13` adds the market policy face** (doc `37`): `market/settings` reads the
|
|
67
|
+
* host's effective sweep cadence, auto-upgrade kind whitelist and last-sweep
|
|
68
|
+
* reading, and `market/settings-set` writes the named keys through to the host's
|
|
69
|
+
* `config.toml`. The same change makes the background sweep able to upgrade
|
|
70
|
+
* entries installed from an `auto_update` market (official sources only, and
|
|
71
|
+
* never a `connector` or a component the user switched off by hand). Both
|
|
72
|
+
* methods are mapped, so the documented route split becomes `55 / 80`.
|
|
66
73
|
*/
|
|
67
|
-
const APP_SERVER_PROTOCOL_VERSION = "fp-
|
|
74
|
+
const APP_SERVER_PROTOCOL_VERSION = "fp-13";
|
|
68
75
|
/**
|
|
69
76
|
* Format version of {@link ExpertPack}.
|
|
70
77
|
*
|
package/dist/index.d.cts
CHANGED
|
@@ -62,8 +62,15 @@
|
|
|
62
62
|
* shape, but the response carries the Agent Markdown body, which the catalog
|
|
63
63
|
* faces deliberately never do; both methods are WebSocket-only, so the
|
|
64
64
|
* documented route split becomes `48 / 73` (doc `32`).
|
|
65
|
+
* **`fp-13` adds the market policy face** (doc `37`): `market/settings` reads the
|
|
66
|
+
* host's effective sweep cadence, auto-upgrade kind whitelist and last-sweep
|
|
67
|
+
* reading, and `market/settings-set` writes the named keys through to the host's
|
|
68
|
+
* `config.toml`. The same change makes the background sweep able to upgrade
|
|
69
|
+
* entries installed from an `auto_update` market (official sources only, and
|
|
70
|
+
* never a `connector` or a component the user switched off by hand). Both
|
|
71
|
+
* methods are mapped, so the documented route split becomes `55 / 80`.
|
|
65
72
|
*/
|
|
66
|
-
export declare const APP_SERVER_PROTOCOL_VERSION = "fp-
|
|
73
|
+
export declare const APP_SERVER_PROTOCOL_VERSION = "fp-13";
|
|
67
74
|
export interface JsonRpcRequest {
|
|
68
75
|
jsonrpc: "2.0";
|
|
69
76
|
id: number | string;
|
|
@@ -1295,6 +1302,73 @@ export interface StoreList {
|
|
|
1295
1302
|
* background (D-SDK-1 ①) — the catalog may be incomplete. */
|
|
1296
1303
|
markets_pending?: boolean;
|
|
1297
1304
|
}
|
|
1305
|
+
/**
|
|
1306
|
+
* The host's effective market policy (doc `37` §3.2, `fp-13`).
|
|
1307
|
+
*
|
|
1308
|
+
* Two different questions, deliberately in one view: *when* the sweep runs
|
|
1309
|
+
* (`auto_update_interval_hours`) and *what it may touch*
|
|
1310
|
+
* (`entry_auto_update_kinds`). Both are read from the host's `config.toml` on
|
|
1311
|
+
* every call — nothing here is an in-memory override.
|
|
1312
|
+
*/
|
|
1313
|
+
export interface MarketSettings {
|
|
1314
|
+
/**
|
|
1315
|
+
* Sweep cadence in hours. `null` = the background sweep is off.
|
|
1316
|
+
*
|
|
1317
|
+
* `0` is the wire spelling for "turn it off" on the way in
|
|
1318
|
+
* ({@link MarketSettingsPatch}), and reads back as `null`, because the host's
|
|
1319
|
+
* own `cadence()` already treats `0` as off rather than "every tick".
|
|
1320
|
+
*/
|
|
1321
|
+
auto_update_interval_hours: number | null;
|
|
1322
|
+
/**
|
|
1323
|
+
* Entry kinds the sweep may auto-upgrade.
|
|
1324
|
+
*
|
|
1325
|
+
* Empty = the sweep only refreshes market indexes (the behaviour before doc
|
|
1326
|
+
* `37`). The default is `["agent", "team", "skill"]`: `"connector"` is never
|
|
1327
|
+
* implicit, because upgrading a connector reruns `upsert_server`, which marks
|
|
1328
|
+
* the server **disabled** whenever its configuration changed — an unattended
|
|
1329
|
+
* upgrade would silently disconnect a connector the user is using (`36` §3.4).
|
|
1330
|
+
*/
|
|
1331
|
+
entry_auto_update_kinds: StoreItemKind[];
|
|
1332
|
+
/**
|
|
1333
|
+
* Whether this host actually runs a sweep at all.
|
|
1334
|
+
*
|
|
1335
|
+
* A host with no resolved `config.toml` path (the desktop host) reports
|
|
1336
|
+
* `false` and never sweeps, so a client must not read "the cadence is set" as
|
|
1337
|
+
* "updates will happen".
|
|
1338
|
+
*/
|
|
1339
|
+
sweep_enabled: boolean;
|
|
1340
|
+
/** The most recent sweep, or `null` before the first one. In-memory only. */
|
|
1341
|
+
last_sweep: MarketSweepReport | null;
|
|
1342
|
+
}
|
|
1343
|
+
/**
|
|
1344
|
+
* `market/settings-set` patch. An **absent** field means "leave it alone" — the
|
|
1345
|
+
* two fields are independent, so a caller can change the cadence without
|
|
1346
|
+
* restating the whitelist.
|
|
1347
|
+
*/
|
|
1348
|
+
export interface MarketSettingsPatch {
|
|
1349
|
+
/** Absent = unchanged; `0` = off; `> 0` = hours between sweeps. */
|
|
1350
|
+
auto_update_interval_hours?: number;
|
|
1351
|
+
/** Absent = unchanged; `[]` = upgrade nothing (index refresh only). */
|
|
1352
|
+
entry_auto_update_kinds?: StoreItemKind[];
|
|
1353
|
+
}
|
|
1354
|
+
/** One background sweep's reading (doc `37` §3.2, D8). */
|
|
1355
|
+
export interface MarketSweepReport {
|
|
1356
|
+
/** Epoch ms when the sweep finished. */
|
|
1357
|
+
at: number;
|
|
1358
|
+
/** Markets whose index refresh succeeded this round. */
|
|
1359
|
+
refreshed: number;
|
|
1360
|
+
/** Entries actually upgraded. */
|
|
1361
|
+
upgraded: number;
|
|
1362
|
+
/** Entries that were candidates and failed. Never silently dropped. */
|
|
1363
|
+
failed: MarketSweepFailure[];
|
|
1364
|
+
}
|
|
1365
|
+
/** One entry the sweep refused to upgrade, with the host's own reason. */
|
|
1366
|
+
export interface MarketSweepFailure {
|
|
1367
|
+
/** `<marketplace_id>/<entry_name>` — the {@link StoreItem.id} spelling. */
|
|
1368
|
+
id: string;
|
|
1369
|
+
/** Server-authored prose (not an i18n key). */
|
|
1370
|
+
error: string;
|
|
1371
|
+
}
|
|
1298
1372
|
/** One model in the public catalog (`models/list`, REQ-PAR-05b). Provider
|
|
1299
1373
|
* credentials, base URLs and health internals never cross this projection. */
|
|
1300
1374
|
export interface ModelSummary {
|
|
@@ -1510,6 +1584,16 @@ export interface ExpertPack {
|
|
|
1510
1584
|
description?: string | null;
|
|
1511
1585
|
persona: ExpertPersona;
|
|
1512
1586
|
model: ExpertModel;
|
|
1587
|
+
/**
|
|
1588
|
+
* The Definition's Skills, **by reference** — fetch the bytes with
|
|
1589
|
+
* `skills.files()` / `skills.readFile()`.
|
|
1590
|
+
*
|
|
1591
|
+
* Two sources, deliberately not merged on the wire: an **agent** pack's list is
|
|
1592
|
+
* that expert's own declaration, while a **team** pack's list is what the team's
|
|
1593
|
+
* own package installed, and each member keeps its own declaration in
|
|
1594
|
+
* `team.members[].skills`. An empty list means the package ships no skills, not
|
|
1595
|
+
* that you should go look at the members. `materializePack` unions both.
|
|
1596
|
+
*/
|
|
1513
1597
|
skills: ExpertSkillRef[];
|
|
1514
1598
|
connectors: ExpertConnectorRef[];
|
|
1515
1599
|
tool_policy: ExpertToolPolicy;
|
package/dist/index.d.mts
CHANGED
|
@@ -62,8 +62,15 @@
|
|
|
62
62
|
* shape, but the response carries the Agent Markdown body, which the catalog
|
|
63
63
|
* faces deliberately never do; both methods are WebSocket-only, so the
|
|
64
64
|
* documented route split becomes `48 / 73` (doc `32`).
|
|
65
|
+
* **`fp-13` adds the market policy face** (doc `37`): `market/settings` reads the
|
|
66
|
+
* host's effective sweep cadence, auto-upgrade kind whitelist and last-sweep
|
|
67
|
+
* reading, and `market/settings-set` writes the named keys through to the host's
|
|
68
|
+
* `config.toml`. The same change makes the background sweep able to upgrade
|
|
69
|
+
* entries installed from an `auto_update` market (official sources only, and
|
|
70
|
+
* never a `connector` or a component the user switched off by hand). Both
|
|
71
|
+
* methods are mapped, so the documented route split becomes `55 / 80`.
|
|
65
72
|
*/
|
|
66
|
-
export declare const APP_SERVER_PROTOCOL_VERSION = "fp-
|
|
73
|
+
export declare const APP_SERVER_PROTOCOL_VERSION = "fp-13";
|
|
67
74
|
export interface JsonRpcRequest {
|
|
68
75
|
jsonrpc: "2.0";
|
|
69
76
|
id: number | string;
|
|
@@ -1295,6 +1302,73 @@ export interface StoreList {
|
|
|
1295
1302
|
* background (D-SDK-1 ①) — the catalog may be incomplete. */
|
|
1296
1303
|
markets_pending?: boolean;
|
|
1297
1304
|
}
|
|
1305
|
+
/**
|
|
1306
|
+
* The host's effective market policy (doc `37` §3.2, `fp-13`).
|
|
1307
|
+
*
|
|
1308
|
+
* Two different questions, deliberately in one view: *when* the sweep runs
|
|
1309
|
+
* (`auto_update_interval_hours`) and *what it may touch*
|
|
1310
|
+
* (`entry_auto_update_kinds`). Both are read from the host's `config.toml` on
|
|
1311
|
+
* every call — nothing here is an in-memory override.
|
|
1312
|
+
*/
|
|
1313
|
+
export interface MarketSettings {
|
|
1314
|
+
/**
|
|
1315
|
+
* Sweep cadence in hours. `null` = the background sweep is off.
|
|
1316
|
+
*
|
|
1317
|
+
* `0` is the wire spelling for "turn it off" on the way in
|
|
1318
|
+
* ({@link MarketSettingsPatch}), and reads back as `null`, because the host's
|
|
1319
|
+
* own `cadence()` already treats `0` as off rather than "every tick".
|
|
1320
|
+
*/
|
|
1321
|
+
auto_update_interval_hours: number | null;
|
|
1322
|
+
/**
|
|
1323
|
+
* Entry kinds the sweep may auto-upgrade.
|
|
1324
|
+
*
|
|
1325
|
+
* Empty = the sweep only refreshes market indexes (the behaviour before doc
|
|
1326
|
+
* `37`). The default is `["agent", "team", "skill"]`: `"connector"` is never
|
|
1327
|
+
* implicit, because upgrading a connector reruns `upsert_server`, which marks
|
|
1328
|
+
* the server **disabled** whenever its configuration changed — an unattended
|
|
1329
|
+
* upgrade would silently disconnect a connector the user is using (`36` §3.4).
|
|
1330
|
+
*/
|
|
1331
|
+
entry_auto_update_kinds: StoreItemKind[];
|
|
1332
|
+
/**
|
|
1333
|
+
* Whether this host actually runs a sweep at all.
|
|
1334
|
+
*
|
|
1335
|
+
* A host with no resolved `config.toml` path (the desktop host) reports
|
|
1336
|
+
* `false` and never sweeps, so a client must not read "the cadence is set" as
|
|
1337
|
+
* "updates will happen".
|
|
1338
|
+
*/
|
|
1339
|
+
sweep_enabled: boolean;
|
|
1340
|
+
/** The most recent sweep, or `null` before the first one. In-memory only. */
|
|
1341
|
+
last_sweep: MarketSweepReport | null;
|
|
1342
|
+
}
|
|
1343
|
+
/**
|
|
1344
|
+
* `market/settings-set` patch. An **absent** field means "leave it alone" — the
|
|
1345
|
+
* two fields are independent, so a caller can change the cadence without
|
|
1346
|
+
* restating the whitelist.
|
|
1347
|
+
*/
|
|
1348
|
+
export interface MarketSettingsPatch {
|
|
1349
|
+
/** Absent = unchanged; `0` = off; `> 0` = hours between sweeps. */
|
|
1350
|
+
auto_update_interval_hours?: number;
|
|
1351
|
+
/** Absent = unchanged; `[]` = upgrade nothing (index refresh only). */
|
|
1352
|
+
entry_auto_update_kinds?: StoreItemKind[];
|
|
1353
|
+
}
|
|
1354
|
+
/** One background sweep's reading (doc `37` §3.2, D8). */
|
|
1355
|
+
export interface MarketSweepReport {
|
|
1356
|
+
/** Epoch ms when the sweep finished. */
|
|
1357
|
+
at: number;
|
|
1358
|
+
/** Markets whose index refresh succeeded this round. */
|
|
1359
|
+
refreshed: number;
|
|
1360
|
+
/** Entries actually upgraded. */
|
|
1361
|
+
upgraded: number;
|
|
1362
|
+
/** Entries that were candidates and failed. Never silently dropped. */
|
|
1363
|
+
failed: MarketSweepFailure[];
|
|
1364
|
+
}
|
|
1365
|
+
/** One entry the sweep refused to upgrade, with the host's own reason. */
|
|
1366
|
+
export interface MarketSweepFailure {
|
|
1367
|
+
/** `<marketplace_id>/<entry_name>` — the {@link StoreItem.id} spelling. */
|
|
1368
|
+
id: string;
|
|
1369
|
+
/** Server-authored prose (not an i18n key). */
|
|
1370
|
+
error: string;
|
|
1371
|
+
}
|
|
1298
1372
|
/** One model in the public catalog (`models/list`, REQ-PAR-05b). Provider
|
|
1299
1373
|
* credentials, base URLs and health internals never cross this projection. */
|
|
1300
1374
|
export interface ModelSummary {
|
|
@@ -1510,6 +1584,16 @@ export interface ExpertPack {
|
|
|
1510
1584
|
description?: string | null;
|
|
1511
1585
|
persona: ExpertPersona;
|
|
1512
1586
|
model: ExpertModel;
|
|
1587
|
+
/**
|
|
1588
|
+
* The Definition's Skills, **by reference** — fetch the bytes with
|
|
1589
|
+
* `skills.files()` / `skills.readFile()`.
|
|
1590
|
+
*
|
|
1591
|
+
* Two sources, deliberately not merged on the wire: an **agent** pack's list is
|
|
1592
|
+
* that expert's own declaration, while a **team** pack's list is what the team's
|
|
1593
|
+
* own package installed, and each member keeps its own declaration in
|
|
1594
|
+
* `team.members[].skills`. An empty list means the package ships no skills, not
|
|
1595
|
+
* that you should go look at the members. `materializePack` unions both.
|
|
1596
|
+
*/
|
|
1513
1597
|
skills: ExpertSkillRef[];
|
|
1514
1598
|
connectors: ExpertConnectorRef[];
|
|
1515
1599
|
tool_policy: ExpertToolPolicy;
|
package/dist/index.mjs
CHANGED
|
@@ -62,8 +62,15 @@
|
|
|
62
62
|
* shape, but the response carries the Agent Markdown body, which the catalog
|
|
63
63
|
* faces deliberately never do; both methods are WebSocket-only, so the
|
|
64
64
|
* documented route split becomes `48 / 73` (doc `32`).
|
|
65
|
+
* **`fp-13` adds the market policy face** (doc `37`): `market/settings` reads the
|
|
66
|
+
* host's effective sweep cadence, auto-upgrade kind whitelist and last-sweep
|
|
67
|
+
* reading, and `market/settings-set` writes the named keys through to the host's
|
|
68
|
+
* `config.toml`. The same change makes the background sweep able to upgrade
|
|
69
|
+
* entries installed from an `auto_update` market (official sources only, and
|
|
70
|
+
* never a `connector` or a component the user switched off by hand). Both
|
|
71
|
+
* methods are mapped, so the documented route split becomes `55 / 80`.
|
|
65
72
|
*/
|
|
66
|
-
const APP_SERVER_PROTOCOL_VERSION = "fp-
|
|
73
|
+
const APP_SERVER_PROTOCOL_VERSION = "fp-13";
|
|
67
74
|
/**
|
|
68
75
|
* Format version of {@link ExpertPack}.
|
|
69
76
|
*
|
package/package.json
CHANGED