@possibl/rcrt-sdk 0.1.3 → 0.5.0
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/CHANGELOG.md +87 -0
- package/README.md +35 -4
- package/dist/authn.d.ts +30 -0
- package/dist/authn.d.ts.map +1 -1
- package/dist/authn.js +32 -0
- package/dist/authn.js.map +1 -1
- package/dist/breadcrumbs.d.ts +11 -0
- package/dist/breadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs.js +26 -0
- package/dist/breadcrumbs.js.map +1 -1
- package/dist/cards.d.ts.map +1 -1
- package/dist/cards.js +0 -1
- package/dist/cards.js.map +1 -1
- package/dist/chat.d.ts +53 -0
- package/dist/chat.d.ts.map +1 -1
- package/dist/chat.js +47 -0
- package/dist/chat.js.map +1 -1
- package/dist/client.d.ts +40 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +64 -0
- package/dist/client.js.map +1 -1
- package/dist/files.d.ts +41 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +64 -0
- package/dist/files.js.map +1 -0
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/fetch.d.ts +6 -0
- package/dist/internal/fetch.d.ts.map +1 -1
- package/dist/internal/fetch.js +2 -0
- package/dist/internal/fetch.js.map +1 -1
- package/dist/marketplace.d.ts +98 -0
- package/dist/marketplace.d.ts.map +1 -0
- package/dist/marketplace.js +74 -0
- package/dist/marketplace.js.map +1 -0
- package/dist/members.d.ts +60 -0
- package/dist/members.d.ts.map +1 -0
- package/dist/members.js +74 -0
- package/dist/members.js.map +1 -0
- package/dist/org.d.ts +85 -0
- package/dist/org.d.ts.map +1 -0
- package/dist/org.js +70 -0
- package/dist/org.js.map +1 -0
- package/dist/types/engine.d.ts +69 -0
- package/dist/types/engine.d.ts.map +1 -0
- package/dist/types/engine.js +53 -0
- package/dist/types/engine.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,93 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes are documented here. Follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) + [semver](https://semver.org/).
|
|
4
4
|
|
|
5
|
+
## 0.5.0 — 2026-06-22
|
|
6
|
+
|
|
7
|
+
Workspace membership + invitation management, plus self-serve signup and open-enrollment join. Additive only — no breaking changes.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **`client.members`** — `MembersModule`: workspace member + invitation
|
|
12
|
+
lifecycle against `/v1/tenants/{id}/members` and `/v1/tenants/{id}/invitations`.
|
|
13
|
+
Methods: `list`, `add`, `updateRole`, `remove`, `listInvitations`, `invite`,
|
|
14
|
+
`cancelInvitation`. Creating an invitation also sends the invite email
|
|
15
|
+
server-side (no separate resend endpoint — re-create to resend).
|
|
16
|
+
- **`TenantMember`**, **`TenantInvitation`** types, exported from the package root.
|
|
17
|
+
- **`auth.signup()`** — self-serve first-workspace provisioning
|
|
18
|
+
(`POST /v1/auth/signup`). Idempotent: returns the existing personal workspace
|
|
19
|
+
(200) when one already exists, 201 on creation. Call when `listTenants()` is
|
|
20
|
+
empty after first sign-in.
|
|
21
|
+
- **`auth.joinTenant(tenantId)`** — open-enrollment self-join
|
|
22
|
+
(`POST /v1/tenants/{id}/join`). Any authenticated user may join a tenant that
|
|
23
|
+
has opted into `tenants.auto_enroll_role`; idempotent. No `X-Tenant-ID` header.
|
|
24
|
+
- **`TenantMembership`** type, exported from the package root.
|
|
25
|
+
|
|
26
|
+
## 0.4.0 — 2026-06-18
|
|
27
|
+
|
|
28
|
+
Chat file attachments (route-agnostic multimodal).
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
|
|
32
|
+
- **`SendChatRequest.attachments`** — optional `ChatAttachmentRef[]`
|
|
33
|
+
(`{ file_breadcrumb_id, mime_type? }`). Upload via `client.files.upload(...)`
|
|
34
|
+
first, then pass the returned `FileRecord.id` as `file_breadcrumb_id`. The
|
|
35
|
+
server resolves the `gs://` URI + mime type and delivers the file to a
|
|
36
|
+
file-capable agent. Omitting it leaves the text-only body unchanged.
|
|
37
|
+
- **`ChatAttachmentRef`** type, exported from the package root.
|
|
38
|
+
|
|
39
|
+
## 0.3.0 — 2026-06-17
|
|
40
|
+
|
|
41
|
+
The unified LLM model addressing release. LLM selection is now a single
|
|
42
|
+
canonical `route/provider/model` address stored in the agent breadcrumb's
|
|
43
|
+
`engine_config.model` (see `docs/design/LLM_PROVIDER_MODEL_RESOLUTION.md`).
|
|
44
|
+
There is no runtime tier indirection, no org override layer, and no fallbacks.
|
|
45
|
+
|
|
46
|
+
### Removed (breaking)
|
|
47
|
+
|
|
48
|
+
- **`org.getLLMTiers` / `org.upsertLLMTier` / `org.deleteLLMTier`** and the
|
|
49
|
+
`OrgLLMTier` type — the `/v1/orgs/{org}/llm-tiers` endpoints and the
|
|
50
|
+
`org_intelligence_tier_overrides` layer are gone. Tiers are authoring sugar
|
|
51
|
+
expanded to a concrete address at publish time; there is no org tier override.
|
|
52
|
+
- **`OrgLLMProvider.fallback_for_id`** — `org_llm_providers` is now purely a
|
|
53
|
+
credential store keyed by route. `is_default` is retained only as a
|
|
54
|
+
convenience flag for credential listing and does NOT influence resolution.
|
|
55
|
+
There is no `fallback` role and no fallback behaviour (fail loudly instead).
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
|
|
59
|
+
- **`EngineConfig` / `ModelAddress`** types plus `parseModelAddress`,
|
|
60
|
+
`formatModelAddress`, `isTierAddress`, and `ROUTE_TIER` — the typed mirror of
|
|
61
|
+
the Go `pkg/rcrt/types.go` `EngineConfig` and `internal/llm/address.go`
|
|
62
|
+
`ModelAddress`.
|
|
63
|
+
- **`breadcrumbs.updateAgentEngineConfig(id, modelAddress, version)`** — typed
|
|
64
|
+
convenience that PATCHes an agent breadcrumb's `engine_config.model` to a
|
|
65
|
+
canonical address while preserving the rest of `content`.
|
|
66
|
+
|
|
67
|
+
### Migration
|
|
68
|
+
|
|
69
|
+
- `org.listLLMProviders` is unchanged (credential listing).
|
|
70
|
+
- Replace any tier reads/writes with the per-agent breadcrumb address via
|
|
71
|
+
`breadcrumbs.updateAgentEngineConfig`.
|
|
72
|
+
|
|
73
|
+
## 0.2.0 — 2026-06-12
|
|
74
|
+
|
|
75
|
+
The convergence release: everything the MSP console reached past the SDK for is now typed surface. `@possibl/rcrt-api` consumers should migrate to this package — the legacy package is being deprecated.
|
|
76
|
+
|
|
77
|
+
### Added
|
|
78
|
+
|
|
79
|
+
- **`client.request(path, options)`** — public, typed escape hatch with the client's auth + tenant headers, 401/409/429 retry handling and error envelope. Apps are never blocked on an SDK release for a new gateway endpoint. `options.body` takes a plain object (SDK serialises); `options.rawBody` takes FormData/binary; `options.query` appends search params.
|
|
80
|
+
- **`client.forTenant(tenantId)`** — cached, permanently-bound per-tenant client instances for parallel fleet fan-out. Replaces the mutate-one-client `setTenantId` pattern for multi-workspace reads (no shared-client races, no request serialisation).
|
|
81
|
+
- **`client.marketplace`** — bundle catalogue + install lifecycle: `listBundles`, `getBundle`, `bundleStatus`, `listInstalledBundles`, `installBundle`, `updateBundle`, `repairBundle`, `pruneBundle`, `uninstallBundle`. Typed `BundleStatus` / `BundleItemResult` wire shapes matching the gateway's `/v1/marketplace/*` routes.
|
|
82
|
+
- **`client.org`** — org admin surface: `get`, `listMembers`, `listTenants`, `createTenant`, `createCustomerOrg`, plus intelligence-tier overrides (`getLLMTiers`, `upsertLLMTier`, `deleteLLMTier`, `listLLMProviders`).
|
|
83
|
+
- **`client.files`** — multipart `upload` (isomorphic `FormData`, no deps), `list`, `get`, `downloadUrl`, `getText`, `delete`.
|
|
84
|
+
- **`client.chat`** — session utilities: `sessionBreadcrumbs`, `sessionParticipants`, `addSessionParticipant`, `removeSessionParticipant`; and `listAgents()` agent discovery (`interpret:promptable` + `interface:chat` filtering).
|
|
85
|
+
- Internal fetch: `rawBody` request option for non-JSON payloads.
|
|
86
|
+
|
|
87
|
+
### Notes
|
|
88
|
+
|
|
89
|
+
- `chat.send` already supported `extra_tags` + `target_agent` — no change needed for App Control grounding tags.
|
|
90
|
+
- No breaking changes; 0.1.x consumers upgrade cleanly.
|
|
91
|
+
|
|
5
92
|
## 0.1.0-alpha.1 — 2026-04-23
|
|
6
93
|
|
|
7
94
|
First publish. Breaking changes are expected during the `alpha` line — pin exact versions. Do not use in production until `0.1.0` stable.
|
package/README.md
CHANGED
|
@@ -87,14 +87,43 @@ const stream = rcrt.chat.sessionStream(sessionId, handlers, {
|
|
|
87
87
|
});
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
+
## Fleet fan-out (multi-workspace apps)
|
|
91
|
+
|
|
92
|
+
A console that reads dozens of workspaces in parallel should never
|
|
93
|
+
mutate one client's tenant. Get a cheap, cached, permanently-bound
|
|
94
|
+
client per workspace instead:
|
|
95
|
+
|
|
96
|
+
```ts
|
|
97
|
+
const reports = await Promise.all(
|
|
98
|
+
workspaces.map(async (ws) => {
|
|
99
|
+
const c = rcrt.forTenant(ws.tenantId);
|
|
100
|
+
return c.marketplace.listInstalledBundles();
|
|
101
|
+
}),
|
|
102
|
+
);
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Escape hatch
|
|
106
|
+
|
|
107
|
+
Any gateway endpoint the SDK hasn't wrapped yet is one call away —
|
|
108
|
+
with the same auth, tenant header, retries and error envelope:
|
|
109
|
+
|
|
110
|
+
```ts
|
|
111
|
+
const res = await rcrt.request<{ items: unknown[] }>('/v1/some/new/endpoint', {
|
|
112
|
+
method: 'POST',
|
|
113
|
+
body: { plain: 'object' }, // SDK serialises JSON
|
|
114
|
+
query: { limit: 50 },
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
90
118
|
## What's exported
|
|
91
119
|
|
|
92
120
|
| Symbol | Purpose |
|
|
93
121
|
| --- | --- |
|
|
94
|
-
| `RcrtClient` | The client. One instance per workspace session. |
|
|
122
|
+
| `RcrtClient` | The client. One instance per workspace session; `forTenant()` for fan-out. |
|
|
95
123
|
| `TokenProvider` | Interface — wire any IdP. |
|
|
96
124
|
| `staticTokenProvider` | Static-token convenience (tests, `tk_*` workspace keys). |
|
|
97
125
|
| `ApiError`, `SdkError` | Error classes. Typed + discriminable by `.status` and `.detail.code`. |
|
|
126
|
+
| `MarketplaceModule`, `OrgModule`, `FilesModule` | Bundle lifecycle, org admin + LLM tiers, file upload. |
|
|
98
127
|
| `Breadcrumb`, `Card`, `Row`, `ChartSpec`, ... | Every public type from the RCRT contract. Re-exportable as your UI types. |
|
|
99
128
|
|
|
100
129
|
Browse `src/index.ts` for the full re-export list.
|
|
@@ -127,9 +156,11 @@ Full narrative + concepts + operations playbook in
|
|
|
127
156
|
|
|
128
157
|
## Status
|
|
129
158
|
|
|
130
|
-
**0.
|
|
131
|
-
|
|
132
|
-
|
|
159
|
+
**0.2.0** — the convergence release: marketplace/org/files modules,
|
|
160
|
+
`forTenant()` fan-out and the `request()` escape hatch cover the full
|
|
161
|
+
surface the production MSP console uses. `@possibl/rcrt-api` is
|
|
162
|
+
deprecated in favour of this package. Shape is stable for the
|
|
163
|
+
documented surface; minor adjustments possible before 1.0.
|
|
133
164
|
|
|
134
165
|
## Licence
|
|
135
166
|
|
package/dist/authn.d.ts
CHANGED
|
@@ -38,6 +38,11 @@ export interface Tenant {
|
|
|
38
38
|
org_id?: string;
|
|
39
39
|
role?: string;
|
|
40
40
|
}
|
|
41
|
+
export interface TenantMembership {
|
|
42
|
+
user_id: string;
|
|
43
|
+
tenant_id: string;
|
|
44
|
+
role: string;
|
|
45
|
+
}
|
|
41
46
|
export interface PendingInvitation {
|
|
42
47
|
id: string;
|
|
43
48
|
org_id?: string | null;
|
|
@@ -63,6 +68,31 @@ export declare class IdentityModule {
|
|
|
63
68
|
me(): Promise<MeResponse>;
|
|
64
69
|
/** List workspaces the current user is a member of. */
|
|
65
70
|
listTenants(): Promise<Tenant[]>;
|
|
71
|
+
/**
|
|
72
|
+
* `POST /v1/auth/signup` — self-serve first-workspace provisioning.
|
|
73
|
+
*
|
|
74
|
+
* Creates a personal organisation + "Personal" workspace for an
|
|
75
|
+
* authenticated user with zero org memberships. Idempotent: returns
|
|
76
|
+
* the existing personal workspace (200) when one already exists,
|
|
77
|
+
* 201 on creation. Call when `listTenants()` comes back empty after
|
|
78
|
+
* first sign-in.
|
|
79
|
+
*/
|
|
80
|
+
signup(): Promise<{
|
|
81
|
+
org_id: string;
|
|
82
|
+
tenant_id: string;
|
|
83
|
+
}>;
|
|
84
|
+
/**
|
|
85
|
+
* `POST /v1/tenants/{id}/join` — self-enroll into a tenant that has
|
|
86
|
+
* opted into open enrollment via `tenants.auto_enroll_role`.
|
|
87
|
+
*
|
|
88
|
+
* Unlike member management this needs NO existing membership: any
|
|
89
|
+
* authenticated user may join, and the gateway enrolls them with the
|
|
90
|
+
* tenant's configured read-only role. Idempotent — calling it again
|
|
91
|
+
* (or when already a member) is a no-op that returns the current
|
|
92
|
+
* role. The tenant id is in the URL, so no X-Tenant-ID header is
|
|
93
|
+
* sent.
|
|
94
|
+
*/
|
|
95
|
+
joinTenant(tenantId: string): Promise<TenantMembership>;
|
|
66
96
|
/** Confirm workspace membership. Client code is still responsible for setting X-Tenant-ID. */
|
|
67
97
|
selectTenant(tenantId: string): Promise<void>;
|
|
68
98
|
/** `POST /v1/auth/logout` — server-side no-op; included for symmetry + audit. */
|
package/dist/authn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authn.d.ts","sourceRoot":"","sources":["../src/authn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAE9C;;;;;OAKG;IACG,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC;IAI/B,uDAAuD;IACjD,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOtC,8FAA8F;IACxF,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,iFAAiF;IAC3E,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,uDAAuD;IACjD,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAOtD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK7D"}
|
|
1
|
+
{"version":3,"file":"authn.d.ts","sourceRoot":"","sources":["../src/authn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,aAAa,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;IACtE,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5C;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAE9C;;;;;OAKG;IACG,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC;IAI/B,uDAAuD;IACjD,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAOtC;;;;;;;;OAQG;IACG,MAAM,IAAI,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAO9D;;;;;;;;;;OAUG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO7D,8FAA8F;IACxF,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,iFAAiF;IAC3E,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B;;;;;;;OAOG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,uDAAuD;IACjD,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAOtD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK7D"}
|
package/dist/authn.js
CHANGED
|
@@ -27,6 +27,38 @@ export class IdentityModule {
|
|
|
27
27
|
});
|
|
28
28
|
return Array.isArray(res) ? res : (res.tenants ?? []);
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* `POST /v1/auth/signup` — self-serve first-workspace provisioning.
|
|
32
|
+
*
|
|
33
|
+
* Creates a personal organisation + "Personal" workspace for an
|
|
34
|
+
* authenticated user with zero org memberships. Idempotent: returns
|
|
35
|
+
* the existing personal workspace (200) when one already exists,
|
|
36
|
+
* 201 on creation. Call when `listTenants()` comes back empty after
|
|
37
|
+
* first sign-in.
|
|
38
|
+
*/
|
|
39
|
+
async signup() {
|
|
40
|
+
return request(this.ctx, '/v1/auth/signup', {
|
|
41
|
+
method: 'POST',
|
|
42
|
+
skipTenant: true,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* `POST /v1/tenants/{id}/join` — self-enroll into a tenant that has
|
|
47
|
+
* opted into open enrollment via `tenants.auto_enroll_role`.
|
|
48
|
+
*
|
|
49
|
+
* Unlike member management this needs NO existing membership: any
|
|
50
|
+
* authenticated user may join, and the gateway enrolls them with the
|
|
51
|
+
* tenant's configured read-only role. Idempotent — calling it again
|
|
52
|
+
* (or when already a member) is a no-op that returns the current
|
|
53
|
+
* role. The tenant id is in the URL, so no X-Tenant-ID header is
|
|
54
|
+
* sent.
|
|
55
|
+
*/
|
|
56
|
+
async joinTenant(tenantId) {
|
|
57
|
+
return request(this.ctx, `/v1/tenants/${tenantId}/join`, {
|
|
58
|
+
method: 'POST',
|
|
59
|
+
skipTenant: true,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
30
62
|
/** Confirm workspace membership. Client code is still responsible for setting X-Tenant-ID. */
|
|
31
63
|
async selectTenant(tenantId) {
|
|
32
64
|
await request(this.ctx, `/v1/auth/tenants/${tenantId}/select`, {
|
package/dist/authn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authn.js","sourceRoot":"","sources":["../src/authn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"authn.js","sourceRoot":"","sources":["../src/authn.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAyC9C,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,GAAiB;QAAjB,QAAG,GAAH,GAAG,CAAc;IAAG,CAAC;IAElD;;;;;OAKG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,OAAO,CAAa,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,MAAM,OAAO,CAAmC,IAAI,CAAC,GAAG,EAAE,kBAAkB,EAAE;YACxF,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,OAAO,CAAwC,IAAI,CAAC,GAAG,EAAE,iBAAiB,EAAE;YACjF,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB;QAC/B,OAAO,OAAO,CAAmB,IAAI,CAAC,GAAG,EAAE,eAAe,QAAQ,OAAO,EAAE;YACzE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,8FAA8F;IAC9F,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,OAAO,CAAO,IAAI,CAAC,GAAG,EAAE,oBAAoB,QAAQ,SAAS,EAAE;YACnE,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,iFAAiF;IACjF,KAAK,CAAC,MAAM;QACV,MAAM,OAAO,CAAO,IAAI,CAAC,GAAG,EAAE,iBAAiB,EAAE;YAC/C,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,aAAa;QACjB,MAAM,OAAO,CAAO,IAAI,CAAC,GAAG,EAAE,yBAAyB,EAAE;YACvD,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,sBAAsB;QAC1B,MAAM,GAAG,GAAG,MAAM,OAAO,CAEvB,IAAI,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAa;QAClC,MAAM,OAAO,CAAO,IAAI,CAAC,GAAG,EAAE,wBAAwB,EAAE;YACtD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,KAAK,EAAE;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,YAAoB;QAC1C,MAAM,OAAO,CAAO,IAAI,CAAC,GAAG,EAAE,mBAAmB,YAAY,UAAU,EAAE;YACvE,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/breadcrumbs.d.ts
CHANGED
|
@@ -26,6 +26,17 @@ export declare class BreadcrumbsModule {
|
|
|
26
26
|
update(id: string, req: UpdateBreadcrumbRequest, opts?: {
|
|
27
27
|
autoRetryConflict?: boolean;
|
|
28
28
|
}): Promise<Breadcrumb>;
|
|
29
|
+
/**
|
|
30
|
+
* Set an agent breadcrumb's `engine_config.model` to a canonical
|
|
31
|
+
* `route/provider/model` address (the runtime SSOT for LLM selection — see
|
|
32
|
+
* docs/design/LLM_PROVIDER_MODEL_RESOLUTION.md).
|
|
33
|
+
*
|
|
34
|
+
* Fetches the current breadcrumb to preserve the rest of `content` and
|
|
35
|
+
* `engine_config`, then PATCHes with the supplied optimistic-locking
|
|
36
|
+
* `version`. The `modelAddress` is NOT validated here beyond non-emptiness;
|
|
37
|
+
* the backend rejects malformed/unexpanded-tier addresses loudly at runtime.
|
|
38
|
+
*/
|
|
39
|
+
updateAgentEngineConfig(id: string, modelAddress: string, version: number): Promise<Breadcrumb>;
|
|
29
40
|
/** `DELETE /v1/breadcrumbs/{id}` — soft delete. */
|
|
30
41
|
delete(id: string): Promise<void>;
|
|
31
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../src/breadcrumbs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EACV,UAAU,EAEV,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAG/B,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAE9C,6BAA6B;IACvB,MAAM,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAU/D,sDAAsD;IAChD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAgB1F,8EAA8E;IACxE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAUnF,iCAAiC;IAC3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI1C;;;;;OAKG;IACG,MAAM,CACV,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,uBAAuB,EAC5B,IAAI,GAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO,GACzC,OAAO,CAAC,UAAU,CAAC;IAyBtB,mDAAmD;IAC7C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQxC"}
|
|
1
|
+
{"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../src/breadcrumbs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EACV,UAAU,EAEV,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAG/B,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAE9C,6BAA6B;IACvB,MAAM,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC;IAU/D,sDAAsD;IAChD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAgB1F,8EAA8E;IACxE,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAUnF,iCAAiC;IAC3B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI1C;;;;;OAKG;IACG,MAAM,CACV,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,uBAAuB,EAC5B,IAAI,GAAE;QAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAAO,GACzC,OAAO,CAAC,UAAU,CAAC;IAyBtB;;;;;;;;;OASG;IACG,uBAAuB,CAC3B,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;IAiBtB,mDAAmD;IAC7C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQxC"}
|
package/dist/breadcrumbs.js
CHANGED
|
@@ -81,6 +81,32 @@ export class BreadcrumbsModule {
|
|
|
81
81
|
? res.breadcrumb
|
|
82
82
|
: res;
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Set an agent breadcrumb's `engine_config.model` to a canonical
|
|
86
|
+
* `route/provider/model` address (the runtime SSOT for LLM selection — see
|
|
87
|
+
* docs/design/LLM_PROVIDER_MODEL_RESOLUTION.md).
|
|
88
|
+
*
|
|
89
|
+
* Fetches the current breadcrumb to preserve the rest of `content` and
|
|
90
|
+
* `engine_config`, then PATCHes with the supplied optimistic-locking
|
|
91
|
+
* `version`. The `modelAddress` is NOT validated here beyond non-emptiness;
|
|
92
|
+
* the backend rejects malformed/unexpanded-tier addresses loudly at runtime.
|
|
93
|
+
*/
|
|
94
|
+
async updateAgentEngineConfig(id, modelAddress, version) {
|
|
95
|
+
if (!modelAddress || modelAddress.trim() === '') {
|
|
96
|
+
throw new SdkError('EMPTY_MODEL_ADDRESS', 'updateAgentEngineConfig requires a non-empty route/provider/model address');
|
|
97
|
+
}
|
|
98
|
+
const current = await this.get(id);
|
|
99
|
+
const content = (current.content ?? {});
|
|
100
|
+
const engineConfig = (content.engine_config ?? {});
|
|
101
|
+
const nextContent = {
|
|
102
|
+
...content,
|
|
103
|
+
engine_config: {
|
|
104
|
+
...engineConfig,
|
|
105
|
+
model: modelAddress.trim(),
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
return this.update(id, { content: nextContent, version });
|
|
109
|
+
}
|
|
84
110
|
/** `DELETE /v1/breadcrumbs/{id}` — soft delete. */
|
|
85
111
|
async delete(id) {
|
|
86
112
|
try {
|
package/dist/breadcrumbs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../src/breadcrumbs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../src/breadcrumbs.ts"],"names":[],"mappings":"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"}
|
package/dist/cards.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../src/cards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cards.d.ts","sourceRoot":"","sources":["../src/cards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE5D,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAE9C;;;OAGG;IACG,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAmCpF,8DAA8D;IACxD,WAAW,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAOpD;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS;CAkBrD"}
|
package/dist/cards.js
CHANGED
package/dist/cards.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cards.js","sourceRoot":"","sources":["../src/cards.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"cards.js","sourceRoot":"","sources":["../src/cards.ts"],"names":[],"mappings":"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"}
|
package/dist/chat.d.ts
CHANGED
|
@@ -5,6 +5,21 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { FetchContext } from './internal/fetch.js';
|
|
7
7
|
import type { SseConnection, SseConnectConfig, SseHandlers } from './internal/sse.js';
|
|
8
|
+
import type { Breadcrumb } from './types/breadcrumb.js';
|
|
9
|
+
/**
|
|
10
|
+
* A previously uploaded file attached to a chat turn. Mirrors the api-gateway
|
|
11
|
+
* `ChatRequest.Attachments` contract (`cmd/api-gateway/main.go::ChatAttachmentRef`).
|
|
12
|
+
*
|
|
13
|
+
* `file_breadcrumb_id` is the file breadcrumb's id — the value returned by
|
|
14
|
+
* `FilesModule.upload(...)` as `FileRecord.id`. The server resolves it to the
|
|
15
|
+
* object's `gs://` URI + mime type and threads it to a file-capable agent.
|
|
16
|
+
* `mime_type` is an optional override; the server reads it from the breadcrumb
|
|
17
|
+
* when omitted. A raw `gs://` URI is NOT accepted here — only a breadcrumb id.
|
|
18
|
+
*/
|
|
19
|
+
export interface ChatAttachmentRef {
|
|
20
|
+
file_breadcrumb_id: string;
|
|
21
|
+
mime_type?: string;
|
|
22
|
+
}
|
|
8
23
|
export interface SendChatRequest {
|
|
9
24
|
message: string;
|
|
10
25
|
/** The agent to route this turn to. `life-coordinator` by default in the Ritual bundle. */
|
|
@@ -13,11 +28,34 @@ export interface SendChatRequest {
|
|
|
13
28
|
session_id?: string;
|
|
14
29
|
/** Extra tags stamped on the user's message breadcrumb. */
|
|
15
30
|
extra_tags?: string[];
|
|
31
|
+
/**
|
|
32
|
+
* Files (e.g. an uploaded contract PDF or image) to deliver to a file-capable
|
|
33
|
+
* agent. Upload via `client.files.upload(...)` first, then pass the returned
|
|
34
|
+
* `FileRecord.id` as `file_breadcrumb_id`. Omit for an ordinary text turn —
|
|
35
|
+
* the wire body is then unchanged.
|
|
36
|
+
*/
|
|
37
|
+
attachments?: ChatAttachmentRef[];
|
|
16
38
|
}
|
|
17
39
|
export interface SendChatResponse {
|
|
18
40
|
id: string;
|
|
19
41
|
session_id: string;
|
|
20
42
|
}
|
|
43
|
+
export interface SessionParticipant {
|
|
44
|
+
agent_id: string;
|
|
45
|
+
name?: string;
|
|
46
|
+
invited_by?: string;
|
|
47
|
+
joined_at?: string;
|
|
48
|
+
[key: string]: unknown;
|
|
49
|
+
}
|
|
50
|
+
/** An agent that can be chatted with / invited into a session. */
|
|
51
|
+
export interface ChattableAgent {
|
|
52
|
+
/** The id chat routing expects in `target_agent`. */
|
|
53
|
+
id: string;
|
|
54
|
+
name: string;
|
|
55
|
+
description: string;
|
|
56
|
+
/** Tagged `interface:chat-default` — pick this one when the app has no opinion. */
|
|
57
|
+
isDefault: boolean;
|
|
58
|
+
}
|
|
21
59
|
export interface SseStreamOptions {
|
|
22
60
|
/** Override the EventSource constructor (required in React Native). */
|
|
23
61
|
eventSource?: SseConnectConfig['eventSource'];
|
|
@@ -46,5 +84,20 @@ export declare class ChatModule {
|
|
|
46
84
|
* @see `packages/docs/operations/loop-detector.md`
|
|
47
85
|
*/
|
|
48
86
|
resumeSession(sessionId: string): Promise<void>;
|
|
87
|
+
/** A session's message breadcrumbs (tag query on `session:{id}`). */
|
|
88
|
+
sessionBreadcrumbs(sessionId: string, limit?: number): Promise<Breadcrumb[]>;
|
|
89
|
+
/** `GET /v1/sessions/{id}/participants` */
|
|
90
|
+
sessionParticipants(sessionId: string): Promise<SessionParticipant[]>;
|
|
91
|
+
/** `POST /v1/sessions/{id}/participants` — invite an agent into the session. */
|
|
92
|
+
addSessionParticipant(sessionId: string, agentId: string, invitedBy?: string): Promise<void>;
|
|
93
|
+
/** `DELETE /v1/sessions/{id}/participants/{agentId}` */
|
|
94
|
+
removeSessionParticipant(sessionId: string, agentId: string): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Agents in the active workspace that can be chatted with / invited.
|
|
97
|
+
* Derived from `interpret:promptable` breadcrumbs; agents tagged
|
|
98
|
+
* `interface:chat` (or `interface:chat-default`) are preferred when
|
|
99
|
+
* any exist.
|
|
100
|
+
*/
|
|
101
|
+
listAgents(): Promise<ChattableAgent[]>;
|
|
49
102
|
}
|
|
50
103
|
//# sourceMappingURL=chat.d.ts.map
|
package/dist/chat.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,WAAW,CAAC,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,YAAY;IAE9C;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO3D,gFAAgF;IAChF,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB,GAAG,aAAa;IAItG,sFAAsF;IACtF,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB,GAAG,aAAa;IAIlF,OAAO,CAAC,WAAW;IAcnB;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD,qEAAqE;IAC/D,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAO/E,2CAA2C;IACrC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQ3E,gFAAgF;IAC1E,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlG,wDAAwD;IAClD,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjF;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAgB9C"}
|
package/dist/chat.js
CHANGED
|
@@ -54,5 +54,52 @@ export class ChatModule {
|
|
|
54
54
|
async resumeSession(sessionId) {
|
|
55
55
|
await request(this.ctx, `/v1/sessions/${sessionId}/resume`, { method: 'POST' });
|
|
56
56
|
}
|
|
57
|
+
// ── Session history + participants ────────────────────────────────
|
|
58
|
+
/** A session's message breadcrumbs (tag query on `session:{id}`). */
|
|
59
|
+
async sessionBreadcrumbs(sessionId, limit = 100) {
|
|
60
|
+
const res = await request(this.ctx, '/v1/breadcrumbs', {
|
|
61
|
+
query: { tags: [`session:${sessionId}`], limit },
|
|
62
|
+
});
|
|
63
|
+
return Array.isArray(res) ? res : (res?.breadcrumbs ?? []);
|
|
64
|
+
}
|
|
65
|
+
/** `GET /v1/sessions/{id}/participants` */
|
|
66
|
+
async sessionParticipants(sessionId) {
|
|
67
|
+
const res = await request(this.ctx, `/v1/sessions/${sessionId}/participants`);
|
|
68
|
+
return res?.participants ?? [];
|
|
69
|
+
}
|
|
70
|
+
/** `POST /v1/sessions/{id}/participants` — invite an agent into the session. */
|
|
71
|
+
async addSessionParticipant(sessionId, agentId, invitedBy) {
|
|
72
|
+
await request(this.ctx, `/v1/sessions/${sessionId}/participants`, {
|
|
73
|
+
method: 'POST',
|
|
74
|
+
body: { agent_id: agentId, ...(invitedBy ? { invited_by: invitedBy } : {}) },
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
/** `DELETE /v1/sessions/{id}/participants/{agentId}` */
|
|
78
|
+
async removeSessionParticipant(sessionId, agentId) {
|
|
79
|
+
await request(this.ctx, `/v1/sessions/${sessionId}/participants/${agentId}`, {
|
|
80
|
+
method: 'DELETE',
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// ── Agent discovery ───────────────────────────────────────────────
|
|
84
|
+
/**
|
|
85
|
+
* Agents in the active workspace that can be chatted with / invited.
|
|
86
|
+
* Derived from `interpret:promptable` breadcrumbs; agents tagged
|
|
87
|
+
* `interface:chat` (or `interface:chat-default`) are preferred when
|
|
88
|
+
* any exist.
|
|
89
|
+
*/
|
|
90
|
+
async listAgents() {
|
|
91
|
+
const res = await request(this.ctx, '/v1/breadcrumbs', {
|
|
92
|
+
query: { tags: ['interpret:promptable'], limit: 100 },
|
|
93
|
+
});
|
|
94
|
+
const all = Array.isArray(res) ? res : (res?.breadcrumbs ?? []);
|
|
95
|
+
const chatTagged = all.filter((bc) => bc.tags?.includes('interface:chat') || bc.tags?.includes('interface:chat-default'));
|
|
96
|
+
const agents = chatTagged.length > 0 ? chatTagged : all;
|
|
97
|
+
return agents.map((bc) => ({
|
|
98
|
+
id: bc.name || bc.id,
|
|
99
|
+
name: bc.content?.name || bc.title,
|
|
100
|
+
description: bc.content?.description || '',
|
|
101
|
+
isDefault: Boolean(bc.tags?.includes('interface:chat-default')),
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
57
104
|
}
|
|
58
105
|
//# sourceMappingURL=chat.js.map
|
package/dist/chat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -14,13 +14,25 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Every module on the client shares the same fetch context — one
|
|
16
16
|
* bearer refresh path, one tenant header, one error envelope.
|
|
17
|
+
*
|
|
18
|
+
* For fleet fan-out across workspaces, prefer `forTenant()` over
|
|
19
|
+
* mutating one client with `setTenantId()`:
|
|
20
|
+
*
|
|
21
|
+
* await Promise.all(workspaces.map((ws) =>
|
|
22
|
+
* rcrt.forTenant(ws.id).breadcrumbs.queryByTags(['interpret:alert']),
|
|
23
|
+
* ));
|
|
17
24
|
*/
|
|
18
25
|
import type { TokenProvider } from './auth.js';
|
|
26
|
+
import type { RequestOptions } from './internal/fetch.js';
|
|
19
27
|
import { BreadcrumbsModule } from './breadcrumbs.js';
|
|
20
28
|
import { ChatModule } from './chat.js';
|
|
21
29
|
import { CardsModule } from './cards.js';
|
|
22
30
|
import { GrantsModule } from './grants.js';
|
|
23
31
|
import { IdentityModule } from './authn.js';
|
|
32
|
+
import { MarketplaceModule } from './marketplace.js';
|
|
33
|
+
import { OrgModule } from './org.js';
|
|
34
|
+
import { FilesModule } from './files.js';
|
|
35
|
+
import { MembersModule } from './members.js';
|
|
24
36
|
export interface RcrtClientConfig {
|
|
25
37
|
apiUrl: string;
|
|
26
38
|
tokenProvider: TokenProvider;
|
|
@@ -31,15 +43,43 @@ export interface RcrtClientConfig {
|
|
|
31
43
|
}
|
|
32
44
|
export declare class RcrtClient {
|
|
33
45
|
private readonly ctx;
|
|
46
|
+
private readonly config;
|
|
47
|
+
private readonly tenantClients;
|
|
34
48
|
readonly auth: IdentityModule;
|
|
35
49
|
readonly breadcrumbs: BreadcrumbsModule;
|
|
36
50
|
readonly chat: ChatModule;
|
|
37
51
|
readonly cards: CardsModule;
|
|
38
52
|
readonly grants: GrantsModule;
|
|
53
|
+
readonly marketplace: MarketplaceModule;
|
|
54
|
+
readonly org: OrgModule;
|
|
55
|
+
readonly files: FilesModule;
|
|
56
|
+
readonly members: MembersModule;
|
|
39
57
|
constructor(config: RcrtClientConfig);
|
|
40
58
|
/** Switch workspaces. Subsequent requests carry the new `X-Tenant-ID`. */
|
|
41
59
|
setTenantId(tenantId: string | null): void;
|
|
42
60
|
/** Read the workspace id this client is currently scoped to. */
|
|
43
61
|
getTenantId(): string | null;
|
|
62
|
+
/**
|
|
63
|
+
* A client permanently bound to `tenantId` — same apiUrl, token
|
|
64
|
+
* provider and fetch impl, its own tenant header. Instances are
|
|
65
|
+
* cached per tenant and are just thin header wrappers, so parallel
|
|
66
|
+
* fleet fan-out is safe and cheap (no shared-client races, no
|
|
67
|
+
* serialisation through `setTenantId`).
|
|
68
|
+
*/
|
|
69
|
+
forTenant(tenantId: string): RcrtClient;
|
|
70
|
+
/**
|
|
71
|
+
* Typed escape hatch — call any gateway endpoint with the client's
|
|
72
|
+
* auth + tenant + retry handling. Apps are never blocked on an SDK
|
|
73
|
+
* release for a new endpoint:
|
|
74
|
+
*
|
|
75
|
+
* const res = await rcrt.request<{ items: Item[] }>('/v1/some/new/endpoint', {
|
|
76
|
+
* method: 'POST',
|
|
77
|
+
* body: { hello: 'world' }, // plain object — the SDK serialises
|
|
78
|
+
* });
|
|
79
|
+
*
|
|
80
|
+
* `options.body` is JSON-serialised; use `options.rawBody` for
|
|
81
|
+
* FormData / binary payloads; `options.query` appends search params.
|
|
82
|
+
*/
|
|
83
|
+
request<T = unknown>(path: string, options?: RequestOptions): Promise<T>;
|
|
44
84
|
}
|
|
45
85
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiC;IAE/D,SAAgB,IAAI,EAAE,cAAc,CAAC;IACrC,SAAgB,WAAW,EAAE,iBAAiB,CAAC;IAC/C,SAAgB,IAAI,EAAE,UAAU,CAAC;IACjC,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,WAAW,EAAE,iBAAiB,CAAC;IAC/C,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,KAAK,EAAE,WAAW,CAAC;IACnC,SAAgB,OAAO,EAAE,aAAa,CAAC;gBAE3B,MAAM,EAAE,gBAAgB;IAuCpC,0EAA0E;IAC1E,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAI1C,gEAAgE;IAChE,WAAW,IAAI,MAAM,GAAG,IAAI;IAI5B;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAkBvC;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;CAGnF"}
|