@introspection-sdk/introspection-browser 0.23.0 → 0.32.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/README.md CHANGED
@@ -23,6 +23,14 @@ client.identify("user_123", { email: "user@example.com" });
23
23
  // Track events
24
24
  client.track("Button Clicked", { buttonId: "submit" });
25
25
 
26
+ // Log an app event under your own namespace (`track` is an alias of this).
27
+ // Names under `introspection.` / `gen_ai.` are reserved and throw.
28
+ client.logEvent(
29
+ "checkout.completed",
30
+ { orderId: "o_1", total: 42 },
31
+ { eventId: "checkout:o_1" }, // stable id: consumers dedupe on it
32
+ );
33
+
26
34
  // Track feedback
27
35
  client.feedback("thumbs_up", { comments: "Very helpful response" });
28
36
  client.feedback("thumbs_down", {
@@ -51,7 +59,7 @@ customer web origins.
51
59
  Plane URL, so the SPA needs no Introspection config of its own.
52
60
  2. `client.connect()` redeems the token at the **Data Plane**
53
61
  `POST /v1/oauth/exchange` for an HttpOnly session cookie, named for the
54
- token's environment lane (see [Environments](#environments)).
62
+ token's environment lane and project (see [Environments](#environments)).
55
63
  3. `client.tasks.start({ runtime_id })` and friends ride that cookie against
56
64
  the Data Plane for tasks, files, conversations, and shares.
57
65
 
@@ -70,7 +78,7 @@ const client = new IntrospectionApiClient({
70
78
  getToken: () => token,
71
79
  });
72
80
 
73
- await client.connect(); // -> intro_dp_<environment> session cookie
81
+ await client.connect(); // -> intro_dp_<lane>_<project> session cookie
74
82
 
75
83
  const run = await client.tasks.start({
76
84
  prompt: "Summarize my latest order",
@@ -97,16 +105,21 @@ named recipe agent instead.
97
105
 
98
106
  ### Environments
99
107
 
100
- The session cookie is named for its environment lane —
101
- `intro_dp_development`, `intro_dp_staging`, `intro_dp_production` — so an app
102
- running more than one lane holds a live session for **each** in one browser. A
103
- single shared name gave the browser one slot, so a second `connect()` evicted
104
- the first.
105
-
106
- **You never pass the environment in.** Your backend picks the lane when it
107
- mints the token; the Data Plane reads it off the token's claim and returns it,
108
- and the client sends it back as `x-introspection-environment` so the right
109
- cookie is resolved:
108
+ The session cookie is a signed `browser_session` JWT named for its environment
109
+ lane **and** project — `intro_dp_{lane}_{base64url(project_uuid_bytes)}`, e.g.
110
+ `intro_dp_production_AZLVpGw-ehCAAAAAAAAAAQ` — so an app running more than one
111
+ lane or project holds a live session for **each** in one browser. A single
112
+ shared name gave the browser one slot, so a second `connect()` evicted the
113
+ first.
114
+
115
+ **You never pass the environment or project in.** Your backend picks them when
116
+ it mints the token; the Data Plane reads them off the token's claims and
117
+ returns them, and the client sends them back as the `lane` and `project_id`
118
+ query parameters so the right cookie is resolved. Both are selectors, not
119
+ credentials: the cookie's own signed lane and project are checked against
120
+ them, so naming one this browser holds no cookie for grants nothing. Query
121
+ parameters, not headers, so requests stay CORS-simple and skip the preflight a
122
+ custom header forces on every call:
110
123
 
111
124
  ```typescript
112
125
  const dev = new IntrospectionApiClient({
@@ -120,22 +133,29 @@ const prod = new IntrospectionApiClient({
120
133
 
121
134
  await Promise.all([dev.connect(), prod.connect()]);
122
135
 
123
- dev.environment; // "development" -> cookie intro_dp_development
124
- prod.environment; // "production" -> cookie intro_dp_production
136
+ dev.environment; // "development" -> cookie intro_dp_development_<project>
137
+ prod.environment; // "production" -> cookie intro_dp_production_<project>
138
+ dev.projectId; // the project the token was minted for
125
139
 
126
- await dev.tasks.list(); // x-introspection-environment: development
127
- await prod.tasks.list(); // x-introspection-environment: production
140
+ await dev.tasks.list(); // GET /v1/tasks?lane=development&project_id=<uuid>
141
+ await prod.tasks.list(); // GET /v1/tasks?lane=production&project_id=<uuid>
128
142
  ```
129
143
 
130
144
  `client.environment` is `undefined` until `connect()` resolves. The optional
131
- `environment` constructor option sends the header before that first exchange;
145
+ `environment` constructor option sends the lane before that first exchange;
132
146
  if it disagrees with the token, `connect()` throws rather than silently
133
147
  preferring one — the token is the authority.
134
148
 
135
- > **Requires a Data Plane that returns `environment` from
136
- > `/v1/oauth/exchange`.** Against an older deployment `client.environment`
137
- > stays `undefined`, no header is sent, and a single-lane app keeps working
138
- > unchanged.
149
+ Without `project_id` the Data Plane picks the lane's most recently issued
150
+ cookie, so a page that connected to two projects on one lane would silently
151
+ read whichever exchanged last; sending it is what keeps two clients on one lane
152
+ apart.
153
+
154
+ > **Requires a Data Plane that returns `environment` and `project_id` from
155
+ > `/v1/oauth/exchange`.** Against an older deployment that omits `project_id`,
156
+ > `client.projectId` stays `undefined` and only `lane` is sent; one that also
157
+ > omits `environment` leaves `client.environment` `undefined` and sends
158
+ > neither, so a single-lane app keeps working unchanged.
139
159
 
140
160
  ## Files and conversations
141
161
 
@@ -14,10 +14,12 @@
14
14
  * is needed, resolves its `runtime_id` server-side. The SPA fetches
15
15
  * the token through the `getToken` callback.
16
16
  * 2. `connect()` redeems the token at the DP `POST /v1/oauth/exchange`
17
- * for an HttpOnly session cookie, named for the token's environment lane
18
- * (`intro_dp_development` / `intro_dp_staging` / `intro_dp_production`).
19
- * Distinct names mean an app running several lanes holds a live session
20
- * for each in one browser instead of the newest evicting the last.
17
+ * for an HttpOnly session cookie named for the token's environment lane
18
+ * and project (`intro_dp_{lane}_{base64url(project_uuid_bytes)}`).
19
+ * Distinct names mean an app running several lanes or projects holds a
20
+ * live session for each in one browser instead of the newest evicting
21
+ * the last. Every request names the lane and project it means in the
22
+ * `?lane=` / `?project_id=` query — selectors, not credentials.
21
23
  * 3. Every subsequent call rides that cookie (`credentials: "include"`)
22
24
  * — `client.tasks.start({ runtime_id })`, `.get(...)`, run streaming,
23
25
  * etc.
@@ -26,7 +28,7 @@
26
28
  * the client transparently re-runs `getToken` + the DP exchange once
27
29
  * before retrying.
28
30
  */
29
- import { ConversationsClient, FilesClient, SharesClient } from "@introspection-sdk/http";
31
+ import { AutomationsClient, ConversationsClient, FilesClient, SharesClient } from "@introspection-sdk/http";
30
32
  import type { Environment } from "@introspection-sdk/types";
31
33
  import { TasksClient } from "./tasks.js";
32
34
  export interface IntrospectionApiClientOptions {
@@ -71,6 +73,8 @@ export declare class IntrospectionApiClient {
71
73
  * scope — two clients on one page holding different lanes is the point.
72
74
  */
73
75
  private resolvedEnvironment?;
76
+ /** Project established by the most recent exchange; per instance likewise. */
77
+ private resolvedProjectId?;
74
78
  /** The exchange currently in flight, shared by every concurrent 401. */
75
79
  private inFlightExchange?;
76
80
  constructor(opts: IntrospectionApiClientOptions);
@@ -80,14 +84,22 @@ export declare class IntrospectionApiClient {
80
84
  get files(): FilesClient;
81
85
  /** Read-only `/v1/conversations` projection bound to the session cookie. */
82
86
  get conversations(): ConversationsClient;
83
- /** `/v1/shares` read-sharing grants bound to the session cookie. */
87
+ /** `/v1/shares` sharing grants bound to the session cookie. */
84
88
  get shares(): SharesClient;
89
+ /** `/v1/automations` operations bound to the DP session cookie. */
90
+ get automations(): AutomationsClient;
85
91
  /**
86
92
  * Environment lane this client is connected to, once `connect()` has
87
93
  * resolved. `undefined` before the first exchange, unless the constructor
88
94
  * was given one.
89
95
  */
90
96
  get environment(): Environment | undefined;
97
+ /**
98
+ * Project this client is connected to, once `connect()` has resolved.
99
+ * `undefined` before the first exchange, or against a DP that does not
100
+ * return `project_id`, in which case requests name only the lane.
101
+ */
102
+ get projectId(): string | undefined;
91
103
  /**
92
104
  * Mint a token via `getToken` and redeem it at the DP for the session
93
105
  * cookie. Call once before issuing task requests.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,YAAY,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASzC,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,sBAAsB;IAWrB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAAC,CAAc;IAC1C,wEAAwE;IACxE,OAAO,CAAC,gBAAgB,CAAC,CAAmB;gBAEf,IAAI,EAAE,6BAA6B;IAyBhE,6DAA6D;IAC7D,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,6DAA6D;IAC7D,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,4EAA4E;IAC5E,IAAI,aAAa,IAAI,mBAAmB,CAEvC;IAED,oEAAoE;IACpE,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED;;;;OAIG;IACH,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CAEzC;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAIhB,QAAQ;IAmCtB;;;;;;;OAOG;YACW,UAAU;CASzB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAIH,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,YAAY,EACb,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAUzC,MAAM,WAAW,6BAA6B;IAC5C;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,QAAQ,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,sBAAsB;IAarB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAZjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAAC,CAAc;IAC1C,8EAA8E;IAC9E,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,wEAAwE;IACxE,OAAO,CAAC,gBAAgB,CAAC,CAAmB;gBAEf,IAAI,EAAE,6BAA6B;IA2BhE,6DAA6D;IAC7D,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,6DAA6D;IAC7D,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED,4EAA4E;IAC5E,IAAI,aAAa,IAAI,mBAAmB,CAEvC;IAED,+DAA+D;IAC/D,IAAI,MAAM,IAAI,YAAY,CAEzB;IAED,mEAAmE;IACnE,IAAI,WAAW,IAAI,iBAAiB,CAEnC;IAED;;;;OAIG;IACH,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CAEzC;IAED;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAIhB,QAAQ;IAwCtB;;;;;;;OAOG;YACW,UAAU;CASzB"}
@@ -14,10 +14,12 @@
14
14
  * is needed, resolves its `runtime_id` server-side. The SPA fetches
15
15
  * the token through the `getToken` callback.
16
16
  * 2. `connect()` redeems the token at the DP `POST /v1/oauth/exchange`
17
- * for an HttpOnly session cookie, named for the token's environment lane
18
- * (`intro_dp_development` / `intro_dp_staging` / `intro_dp_production`).
19
- * Distinct names mean an app running several lanes holds a live session
20
- * for each in one browser instead of the newest evicting the last.
17
+ * for an HttpOnly session cookie named for the token's environment lane
18
+ * and project (`intro_dp_{lane}_{base64url(project_uuid_bytes)}`).
19
+ * Distinct names mean an app running several lanes or projects holds a
20
+ * live session for each in one browser instead of the newest evicting
21
+ * the last. Every request names the lane and project it means in the
22
+ * `?lane=` / `?project_id=` query — selectors, not credentials.
21
23
  * 3. Every subsequent call rides that cookie (`credentials: "include"`)
22
24
  * — `client.tasks.start({ runtime_id })`, `.get(...)`, run streaming,
23
25
  * etc.
@@ -28,7 +30,7 @@
28
30
  */
29
31
  import { BrowserHttpClient, stripTrailingSlash, toApiError } from "./http.js";
30
32
  import { resolveBrowserFetch } from "./fetch.js";
31
- import { ConversationsClient, FilesClient, SharesClient, } from "@introspection-sdk/http";
33
+ import { AutomationsClient, ConversationsClient, FilesClient, SharesClient, } from "@introspection-sdk/http";
32
34
  import { TasksClient } from "./tasks.js";
33
35
  export class IntrospectionApiClient {
34
36
  opts;
@@ -39,6 +41,8 @@ export class IntrospectionApiClient {
39
41
  * scope — two clients on one page holding different lanes is the point.
40
42
  */
41
43
  resolvedEnvironment;
44
+ /** Project established by the most recent exchange; per instance likewise. */
45
+ resolvedProjectId;
42
46
  /** The exchange currently in flight, shared by every concurrent 401. */
43
47
  inFlightExchange;
44
48
  constructor(opts) {
@@ -58,12 +62,14 @@ export class IntrospectionApiClient {
58
62
  fetch: this.fetchImpl,
59
63
  onUnauthorized: () => this.reexchange(),
60
64
  environment: () => this.resolvedEnvironment,
65
+ projectId: () => this.resolvedProjectId,
61
66
  });
62
67
  this.cookieClients = {
63
68
  tasks: new TasksClient(http),
64
69
  files: new FilesClient(http),
65
70
  conversations: new ConversationsClient(http),
66
71
  shares: new SharesClient(http),
72
+ automations: new AutomationsClient(http),
67
73
  };
68
74
  }
69
75
  /** `/v1/tasks` operations bound to the DP session cookie. */
@@ -78,10 +84,14 @@ export class IntrospectionApiClient {
78
84
  get conversations() {
79
85
  return this.cookieClients.conversations;
80
86
  }
81
- /** `/v1/shares` read-sharing grants bound to the session cookie. */
87
+ /** `/v1/shares` sharing grants bound to the session cookie. */
82
88
  get shares() {
83
89
  return this.cookieClients.shares;
84
90
  }
91
+ /** `/v1/automations` operations bound to the DP session cookie. */
92
+ get automations() {
93
+ return this.cookieClients.automations;
94
+ }
85
95
  /**
86
96
  * Environment lane this client is connected to, once `connect()` has
87
97
  * resolved. `undefined` before the first exchange, unless the constructor
@@ -90,6 +100,14 @@ export class IntrospectionApiClient {
90
100
  get environment() {
91
101
  return this.resolvedEnvironment;
92
102
  }
103
+ /**
104
+ * Project this client is connected to, once `connect()` has resolved.
105
+ * `undefined` before the first exchange, or against a DP that does not
106
+ * return `project_id`, in which case requests name only the lane.
107
+ */
108
+ get projectId() {
109
+ return this.resolvedProjectId;
110
+ }
93
111
  /**
94
112
  * Mint a token via `getToken` and redeem it at the DP for the session
95
113
  * cookie. Call once before issuing task requests.
@@ -123,6 +141,10 @@ export class IntrospectionApiClient {
123
141
  }
124
142
  this.resolvedEnvironment = body.environment;
125
143
  }
144
+ // Overwritten, not kept, when absent: naming a project whose cookie this
145
+ // exchange did not establish would be a 401/409, while omitting it falls
146
+ // back to the lane's newest cookie, which is the one just issued.
147
+ this.resolvedProjectId = body.project_id || undefined;
126
148
  }
127
149
  /**
128
150
  * 401 recovery: re-exchange, reporting success so the call can retry.
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,YAAY,GACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2CzC,MAAM,OAAO,sBAAsB;IAWJ;IAVZ,SAAS,CAAe;IACxB,aAAa,CAAgB;IAC9C;;;OAGG;IACK,mBAAmB,CAAe;IAC1C,wEAAwE;IAChE,gBAAgB,CAAoB;IAE5C,YAA6B,IAAmC;QAAnC,SAAI,GAAJ,IAAI,CAA+B;QAC9D,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,6EAA6E;QAC7E,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC;YACjC,MAAM,EAAE,IAAI,CAAC,KAAK;YAClB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;YACvC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,mBAAmB;SAC5C,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG;YACnB,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC;YAC5B,KAAK,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC;YAC5B,aAAa,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC;YAC5C,MAAM,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,6DAA6D;IAC7D,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,4EAA4E;IAC5E,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC1C,CAAC;IAED,oEAAoE;IACpE,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,QAAQ;QACpB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAC9B,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAC1D;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC;aACvC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;YAC/B,WAAW,EAAE,SAAS;SACvB,CACF,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QAEzC,2EAA2E;QAC3E,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAE/C,CAAC;QACF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;gBACxE,MAAM,IAAI,KAAK,CACb,uDAAuD;oBACrD,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,wCAAwC;oBACjE,IAAI,IAAI,CAAC,WAAW,IAAI,CAC3B,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,EAAE;aACtC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;aAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;aAClB,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -10,22 +10,43 @@
10
10
  * credential ever lives in JavaScript. A 401 (expired session cookie)
11
11
  * triggers a single `onUnauthorized` refresh + retry.
12
12
  *
13
- * The session cookie is named for its environment lane
14
- * (`intro_dp_development` / `intro_dp_staging` / `intro_dp_production`), so an
15
- * app running several lanes holds a live session for each in one browser. When
16
- * more than one is present the DP cannot tell which a request means, so we name
17
- * it in {@link ENVIRONMENT_HEADER}.
13
+ * The session cookie is a CP-signed `browser_session` JWT named per lane and
14
+ * project — `intro_dp_{lane}_{base64url(project_uuid_bytes)}`, e.g.
15
+ * `intro_dp_production_AZLVpGw-ehCAAAAAAAAAAQ` — so one browser holds a live
16
+ * session for each lane and project it connected to. When more than one is
17
+ * present the DP cannot tell which a request means, so we name it in the
18
+ * {@link LANE_QUERY_PARAM} and {@link PROJECT_ID_QUERY_PARAM} query parameters;
19
+ * with only the lane, the DP falls back to that lane's most recently issued
20
+ * cookie. Query parameters rather than headers because a custom header makes
21
+ * every cross-origin request pay a CORS preflight.
18
22
  */
19
23
  import { BaseHttpClient, stripTrailingSlash, toApiError } from "@introspection-sdk/http";
20
24
  import type { Environment } from "@introspection-sdk/types";
21
25
  export { stripTrailingSlash, toApiError };
22
26
  /**
23
- * Names which environment lane's session cookie the DP should resolve.
27
+ * Query parameter naming which environment lane's session cookie the DP should
28
+ * resolve.
24
29
  *
25
30
  * A selector, not a credential: the cookie it names is still validated
26
31
  * server-side, so naming a lane this browser holds no cookie for resolves to
27
32
  * nothing rather than granting anything.
28
33
  */
34
+ export declare const LANE_QUERY_PARAM = "lane";
35
+ /**
36
+ * Query parameter naming which project's session cookie, within the lane, the
37
+ * DP should resolve.
38
+ *
39
+ * A selector, not a credential: the cookie's own signed project is checked
40
+ * against it server-side, so naming a project this browser holds no cookie for
41
+ * is a 401 rather than access to that project.
42
+ */
43
+ export declare const PROJECT_ID_QUERY_PARAM = "project_id";
44
+ /**
45
+ * Header form of the lane selector, which the DP still accepts.
46
+ *
47
+ * @deprecated The client sends {@link LANE_QUERY_PARAM}; a custom header costs
48
+ * a CORS preflight on every request.
49
+ */
29
50
  export declare const ENVIRONMENT_HEADER = "x-introspection-environment";
30
51
  export interface BrowserHttpConfig {
31
52
  /** DP REST base URL every request is prefixed with. */
@@ -48,6 +69,12 @@ export interface BrowserHttpConfig {
48
69
  * re-exchange.
49
70
  */
50
71
  environment?: () => Environment | undefined;
72
+ /**
73
+ * Reads the project established by the most recent exchange, read per
74
+ * request for the same reason as {@link environment}. `undefined` against a
75
+ * DP that does not return one, in which case only the lane is sent.
76
+ */
77
+ projectId?: () => string | undefined;
51
78
  }
52
79
  /**
53
80
  * Cookie-authenticated HTTP wrapper bound to one DP endpoint. Has no
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;CAC7C;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;gBACvC,GAAG,EAAE,iBAAiB;CAkBnC"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,UAAU,EACX,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAK5D,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAE1C;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,SAAS,CAAC;AAEvC;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,eAAe,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,2DAA2D;IAC3D,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,WAAW,GAAG,SAAS,CAAC;IAC5C;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;gBACvC,GAAG,EAAE,iBAAiB;CAuBnC"}
package/dist/api/http.js CHANGED
@@ -10,23 +10,44 @@
10
10
  * credential ever lives in JavaScript. A 401 (expired session cookie)
11
11
  * triggers a single `onUnauthorized` refresh + retry.
12
12
  *
13
- * The session cookie is named for its environment lane
14
- * (`intro_dp_development` / `intro_dp_staging` / `intro_dp_production`), so an
15
- * app running several lanes holds a live session for each in one browser. When
16
- * more than one is present the DP cannot tell which a request means, so we name
17
- * it in {@link ENVIRONMENT_HEADER}.
13
+ * The session cookie is a CP-signed `browser_session` JWT named per lane and
14
+ * project — `intro_dp_{lane}_{base64url(project_uuid_bytes)}`, e.g.
15
+ * `intro_dp_production_AZLVpGw-ehCAAAAAAAAAAQ` — so one browser holds a live
16
+ * session for each lane and project it connected to. When more than one is
17
+ * present the DP cannot tell which a request means, so we name it in the
18
+ * {@link LANE_QUERY_PARAM} and {@link PROJECT_ID_QUERY_PARAM} query parameters;
19
+ * with only the lane, the DP falls back to that lane's most recently issued
20
+ * cookie. Query parameters rather than headers because a custom header makes
21
+ * every cross-origin request pay a CORS preflight.
18
22
  */
19
23
  import { BaseHttpClient, stripTrailingSlash, toApiError, } from "@introspection-sdk/http";
20
24
  import { resolveBrowserFetch } from "./fetch.js";
21
25
  // Re-exported for `client.ts`, which redeems the DP session on `connect()`.
22
26
  export { stripTrailingSlash, toApiError };
23
27
  /**
24
- * Names which environment lane's session cookie the DP should resolve.
28
+ * Query parameter naming which environment lane's session cookie the DP should
29
+ * resolve.
25
30
  *
26
31
  * A selector, not a credential: the cookie it names is still validated
27
32
  * server-side, so naming a lane this browser holds no cookie for resolves to
28
33
  * nothing rather than granting anything.
29
34
  */
35
+ export const LANE_QUERY_PARAM = "lane";
36
+ /**
37
+ * Query parameter naming which project's session cookie, within the lane, the
38
+ * DP should resolve.
39
+ *
40
+ * A selector, not a credential: the cookie's own signed project is checked
41
+ * against it server-side, so naming a project this browser holds no cookie for
42
+ * is a 401 rather than access to that project.
43
+ */
44
+ export const PROJECT_ID_QUERY_PARAM = "project_id";
45
+ /**
46
+ * Header form of the lane selector, which the DP still accepts.
47
+ *
48
+ * @deprecated The client sends {@link LANE_QUERY_PARAM}; a custom header costs
49
+ * a CORS preflight on every request.
50
+ */
30
51
  export const ENVIRONMENT_HEADER = "x-introspection-environment";
31
52
  /**
32
53
  * Cookie-authenticated HTTP wrapper bound to one DP endpoint. Has no
@@ -40,11 +61,18 @@ export class BrowserHttpClient extends BaseHttpClient {
40
61
  fetch: resolveBrowserFetch(cfg.fetch),
41
62
  additionalHeaders: cfg.additionalHeaders,
42
63
  transport: {
43
- // Still no bearer token — the HttpOnly cookie is the credential. The
44
- // only per-request contribution is which lane's cookie to resolve.
45
- authHeaders: () => {
64
+ // No bearer token and no header — the HttpOnly cookie is the
65
+ // credential, and the lane and project selectors ride the URL.
66
+ authHeaders: () => ({}),
67
+ authQuery: () => {
68
+ const query = {};
46
69
  const environment = cfg.environment?.();
47
- return environment ? { [ENVIRONMENT_HEADER]: environment } : {};
70
+ if (environment)
71
+ query[LANE_QUERY_PARAM] = environment;
72
+ const projectId = cfg.projectId?.();
73
+ if (projectId)
74
+ query[PROJECT_ID_QUERY_PARAM] = projectId;
75
+ return query;
48
76
  },
49
77
  credentials: "include",
50
78
  onUnauthorized: cfg.onUnauthorized,
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,4EAA4E;AAC5E,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AAyBhE;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IACnD,YAAY,GAAsB;QAChC,KAAK,CAAC;YACJ,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,uEAAuE;YACvE,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;YACrC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,SAAS,EAAE;gBACT,qEAAqE;gBACrE,mEAAmE;gBACnE,WAAW,EAAE,GAA2B,EAAE;oBACxC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,CAAC;gBACD,WAAW,EAAE,SAAS;gBACtB,cAAc,EAAE,GAAG,CAAC,cAAc;aACnC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/api/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,4EAA4E;AAC5E,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAE1C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,YAAY,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,6BAA6B,CAAC;AA+BhE;;;GAGG;AACH,MAAM,OAAO,iBAAkB,SAAQ,cAAc;IACnD,YAAY,GAAsB;QAChC,KAAK,CAAC;YACJ,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,uEAAuE;YACvE,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC;YACrC,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;YACxC,SAAS,EAAE;gBACT,6DAA6D;gBAC7D,+DAA+D;gBAC/D,WAAW,EAAE,GAA2B,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC/C,SAAS,EAAE,GAA2B,EAAE;oBACtC,MAAM,KAAK,GAA2B,EAAE,CAAC;oBACzC,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxC,IAAI,WAAW;wBAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC;oBACvD,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;oBACpC,IAAI,SAAS;wBAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,SAAS,CAAC;oBACzD,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,WAAW,EAAE,SAAS;gBACtB,cAAc,EAAE,GAAG,CAAC,cAAc;aACnC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -26,7 +26,7 @@
26
26
  * getToken: () => token,
27
27
  * });
28
28
  *
29
- * await client.connect(); // -> intro_dp_<environment> session cookie
29
+ * await client.connect(); // -> intro_dp_<lane>_<project> session cookie
30
30
  * const run = await client.tasks.start({
31
31
  * prompt: "Summarize my latest order",
32
32
  * runtime_id: runtimeId,
@@ -36,12 +36,12 @@
36
36
  */
37
37
  export { IntrospectionApiClient, type IntrospectionApiClientOptions, } from "./client.js";
38
38
  export { TasksClient, TaskRunsClient, RunHandle, type CreateTaskParams, type StartTaskParams, } from "./tasks.js";
39
- export { ConversationItemsClient, ConversationsClient, FileVersionsClient, FilesClient, SharesClient, type FileUploadBody, } from "@introspection-sdk/http";
40
- export { BrowserHttpClient, ENVIRONMENT_HEADER, type BrowserHttpConfig, } from "./http.js";
39
+ export { AutomationsClient, ConversationItemsClient, ConversationsClient, FileVersionsClient, FilesClient, SharesClient, type FileUploadBody, } from "@introspection-sdk/http";
40
+ export { BrowserHttpClient, ENVIRONMENT_HEADER, LANE_QUERY_PARAM, PROJECT_ID_QUERY_PARAM, type BrowserHttpConfig, } from "./http.js";
41
41
  export { Paginator, cursorPaginate, type PageSource, } from "@introspection-sdk/http";
42
42
  export { TranscriptAccumulator, foldAgui, foldSpans, mergeTranscripts, } from "@introspection-sdk/http";
43
43
  export { EventType } from "@introspection-sdk/types";
44
44
  export { genAiConversationId, genAiInputMessages, genAiOutputMessages, } from "@introspection-sdk/types";
45
- export type { AGUIEvent, BaseEvent, Environment, Interrupt, Message, ResumeEntry, RunAgentInput, Task, TaskRun, TaskStatus, TaskRunKind, TaskCreateResponse, TaskListParams, TaskUpdateParams, TaskRunCreateParams, TaskRunResumeParams, TaskFileRef, TaskCancelResponse, TaskCancelOptions, RunIdentityInput, Paginated, File, FileType, FileListParams, FileUpdateParams, FileCreateTextParams, ListParams, GenAiSpan, GenAiSpanList, Conversation, ConversationAgent, ConversationUsage, ConversationCost, ConversationMetrics, SpanAttributes, ConversationSortField, ConversationListParams, ConversationItemListParams, ConversationItemInclude, ResourceShare, ShareResourceType, ShareCreateParams, ShareListParams, } from "@introspection-sdk/types";
46
- export { IntrospectionAPIError, AuthenticationError, InsufficientScopeError, NotFoundError, NetworkError, RunnerExpiredError, } from "@introspection-sdk/types";
45
+ export type { AGUIEvent, BaseEvent, Environment, Interrupt, Message, ResumeEntry, RunAgentInput, Task, TaskRun, TaskStatus, TaskRunKind, TaskCreateResponse, TaskListParams, TaskUpdateParams, TaskRunCreateParams, TaskRunResumeParams, TaskFileRef, TaskCancelResponse, TaskCancelOptions, RunIdentityInput, Paginated, File, FileType, FileListParams, FileUpdateParams, FileCreateTextParams, ListParams, GenAiSpan, GenAiSpanList, Conversation, ConversationAgent, ConversationUsage, ConversationCost, ConversationMetrics, SpanAttributes, ConversationSortField, ConversationListParams, ConversationItemListParams, ConversationItemInclude, ResourceShare, ShareResourceType, ShareCreateParams, ShareListParams, ShareUpdateParams, Automation, AutomationCreateParams, AutomationListParams, AutomationTriggerResponse, AutomationUpdateParams, } from "@introspection-sdk/types";
46
+ export { IntrospectionAPIError, AuthenticationError, InsufficientScopeError, NotFoundError, NetworkError, StreamIncompleteError, RunFailedError, RunnerExpiredError, } from "@introspection-sdk/types";
47
47
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,cAAc,EACd,KAAK,UAAU,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACX,aAAa,EACb,IAAI,EACJ,OAAO,EACP,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EACL,sBAAsB,EACtB,KAAK,6BAA6B,GACnC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,iBAAiB,GACvB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,cAAc,EACd,KAAK,UAAU,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EACV,SAAS,EACT,SAAS,EACT,WAAW,EACX,SAAS,EACT,OAAO,EACP,WAAW,EACX,aAAa,EACb,IAAI,EACJ,OAAO,EACP,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC"}
package/dist/api/index.js CHANGED
@@ -26,7 +26,7 @@
26
26
  * getToken: () => token,
27
27
  * });
28
28
  *
29
- * await client.connect(); // -> intro_dp_<environment> session cookie
29
+ * await client.connect(); // -> intro_dp_<lane>_<project> session cookie
30
30
  * const run = await client.tasks.start({
31
31
  * prompt: "Summarize my latest order",
32
32
  * runtime_id: runtimeId,
@@ -36,11 +36,11 @@
36
36
  */
37
37
  export { IntrospectionApiClient, } from "./client.js";
38
38
  export { TasksClient, TaskRunsClient, RunHandle, } from "./tasks.js";
39
- export { ConversationItemsClient, ConversationsClient, FileVersionsClient, FilesClient, SharesClient, } from "@introspection-sdk/http";
40
- export { BrowserHttpClient, ENVIRONMENT_HEADER, } from "./http.js";
39
+ export { AutomationsClient, ConversationItemsClient, ConversationsClient, FileVersionsClient, FilesClient, SharesClient, } from "@introspection-sdk/http";
40
+ export { BrowserHttpClient, ENVIRONMENT_HEADER, LANE_QUERY_PARAM, PROJECT_ID_QUERY_PARAM, } from "./http.js";
41
41
  export { Paginator, cursorPaginate, } from "@introspection-sdk/http";
42
42
  export { TranscriptAccumulator, foldAgui, foldSpans, mergeTranscripts, } from "@introspection-sdk/http";
43
43
  export { EventType } from "@introspection-sdk/types";
44
44
  export { genAiConversationId, genAiInputMessages, genAiOutputMessages, } from "@introspection-sdk/types";
45
- export { IntrospectionAPIError, AuthenticationError, InsufficientScopeError, NotFoundError, NetworkError, RunnerExpiredError, } from "@introspection-sdk/types";
45
+ export { IntrospectionAPIError, AuthenticationError, InsufficientScopeError, NotFoundError, NetworkError, StreamIncompleteError, RunFailedError, RunnerExpiredError, } from "@introspection-sdk/types";
46
46
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EACL,sBAAsB,GAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,GAGV,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAgDlC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EACL,sBAAsB,GAEvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,GAGV,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,YAAY,GAEb,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,GAEvB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,SAAS,EACT,cAAc,GAEf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,QAAQ,EACR,SAAS,EACT,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAsDlC,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC"}
@@ -47,7 +47,8 @@ export interface CreateTaskParams {
47
47
  * Fork from a shared conversation: the `/v1/shares` grant id for the source
48
48
  * conversation. Its presence makes this create a fork — the server seeds the
49
49
  * new task with that conversation's history, read via the share (the
50
- * permissions boundary).
50
+ * permissions boundary). A share carrying `visible_from` cannot be forked
51
+ * (409).
51
52
  */
52
53
  fork_share_id?: string;
53
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,IAAI,EACL,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EACT,cAAc,EACd,WAAW,IAAI,iBAAiB,EAChC,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAYD;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,iBAAiB,CAChD,gBAAgB,EAChB,eAAe,CAChB;gBACa,IAAI,EAAE,kBAAkB;CAGrC;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,IAAI,EACL,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,SAAS,EACT,cAAc,EACd,WAAW,IAAI,iBAAiB,EAChC,KAAK,kBAAkB,EACxB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;;GASG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;CAChB;AAYD;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,iBAAiB,CAChD,gBAAgB,EAChB,eAAe,CAChB;gBACa,IAAI,EAAE,kBAAkB;CAGrC;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,SAAS,EACT,cAAc,EACd,WAAW,IAAI,iBAAiB,GAEjC,MAAM,yBAAyB,CAAC;AA2DjC,SAAS,UAAU,CAAC,MAAwB;IAC1C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,IAAI,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IAClD,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE;QACnC,CAAC,CAAC,QAAQ,CAAC;IACb,IAAI,cAAc,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAGhC;IACC,YAAY,IAAwB;QAClC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/api/tasks.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,SAAS,EACT,cAAc,EACd,WAAW,IAAI,iBAAiB,GAEjC,MAAM,yBAAyB,CAAC;AA4DjC,SAAS,UAAU,CAAC,MAAwB;IAC1C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,IAAI,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IAClD,MAAM,cAAc,GAAG,QAAQ;QAC7B,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE;QACnC,CAAC,CAAC,QAAQ,CAAC;IACb,IAAI,cAAc,KAAK,SAAS;QAAE,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAGhC;IACC,YAAY,IAAwB;QAClC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC1B,CAAC;CACF;AAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
package/dist/client.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * Identity and gen_ai context can be managed via baggage (requires OpenTelemetry
6
6
  * browser SDK with Zone.js for automatic propagation) or via client instance.
7
7
  */
8
- import { type IntrospectionClientOptions, type FeedbackOptions, type UserTraits } from "./types.js";
8
+ import { type IntrospectionClientOptions, type FeedbackOptions, type LogEventOptions, type UserTraits } from "./types.js";
9
9
  export declare class IntrospectionClient {
10
10
  private loggerProvider;
11
11
  private otelLogger;
@@ -57,7 +57,26 @@ export declare class IntrospectionClient {
57
57
  */
58
58
  private buildAttributes;
59
59
  /**
60
- * Track a custom event.
60
+ * Log an app event under any custom name, e.g. `"ark.feed.entry"`.
61
+ *
62
+ * `attributes` land under `properties.*`, which is where the platform's
63
+ * `introspection.track` read projection finds them. Identity comes from
64
+ * baggage, then the client instance, unless `options.identity` overrides it.
65
+ *
66
+ * Pass a stable `options.eventId` when delivery may repeat: consumers
67
+ * dedupe on it, so re-sending the same id is safe.
68
+ *
69
+ * @throws Error when `name` is empty or falls under a reserved namespace
70
+ * (`introspection.*`, `gen_ai.*`).
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * client.logEvent("checkout.completed", { orderId: "o_1", total: 42 });
75
+ * ```
76
+ */
77
+ logEvent(name: string, attributes?: Record<string, unknown>, options?: LogEventOptions): void;
78
+ /**
79
+ * Track a custom event. A thin alias of {@link logEvent}.
61
80
  *
62
81
  * @param eventName - The event name (e.g., `"Button Clicked"`).
63
82
  * @param properties - Optional properties to attach to the event.
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -12,7 +12,13 @@ import { propagation, context } from "@opentelemetry/api";
12
12
  import { defaultResource, resourceFromAttributes, } from "@opentelemetry/resources";
13
13
  import { ATTR_SERVICE_NAME } from "@opentelemetry/semantic-conventions";
14
14
  import { VERSION } from "./version.js";
15
- import { generateEventId, toAttributeValue, } from "./types.js";
15
+ import { generateEventId, reservedEventNamePrefix, toAttributeValue, } from "./types.js";
16
+ const SEVERITY_NUMBERS = {
17
+ DEBUG: SeverityNumber.DEBUG,
18
+ INFO: SeverityNumber.INFO,
19
+ WARN: SeverityNumber.WARN,
20
+ ERROR: SeverityNumber.ERROR,
21
+ };
16
22
  const ANONYMOUS_ID_KEY = "introspection_anonymous_id";
17
23
  const USER_ID_KEY = "introspection_user_id";
18
24
  const TRAITS_KEY = "introspection_traits";
@@ -82,6 +88,9 @@ class Logger {
82
88
  *
83
89
  * // Track a custom event
84
90
  * client.track("Button Clicked", { buttonId: "submit" });
91
+ *
92
+ * // Log an app event under your own namespace
93
+ * client.logEvent("checkout.completed", { orderId: "o_1" });
85
94
  * ```
86
95
  */
87
96
  /**
@@ -320,7 +329,7 @@ export class IntrospectionClient {
320
329
  attributes["context.screen.density"] = window.devicePixelRatio;
321
330
  }
322
331
  // Identity
323
- const identity = this.getIdentityFromContext();
332
+ const identity = options.identity ?? this.getIdentityFromContext();
324
333
  if (identity.userId) {
325
334
  attributes["identity.user.id"] = identity.userId;
326
335
  }
@@ -365,7 +374,51 @@ export class IntrospectionClient {
365
374
  return attributes;
366
375
  }
367
376
  /**
368
- * Track a custom event.
377
+ * Log an app event under any custom name, e.g. `"ark.feed.entry"`.
378
+ *
379
+ * `attributes` land under `properties.*`, which is where the platform's
380
+ * `introspection.track` read projection finds them. Identity comes from
381
+ * baggage, then the client instance, unless `options.identity` overrides it.
382
+ *
383
+ * Pass a stable `options.eventId` when delivery may repeat: consumers
384
+ * dedupe on it, so re-sending the same id is safe.
385
+ *
386
+ * @throws Error when `name` is empty or falls under a reserved namespace
387
+ * (`introspection.*`, `gen_ai.*`).
388
+ *
389
+ * @example
390
+ * ```ts
391
+ * client.logEvent("checkout.completed", { orderId: "o_1", total: 42 });
392
+ * ```
393
+ */
394
+ logEvent(name, attributes, options = {}) {
395
+ if (!name) {
396
+ throw new Error("logEvent: event name must be a non-empty string.");
397
+ }
398
+ const reserved = reservedEventNamePrefix(name);
399
+ if (reserved) {
400
+ throw new Error(`logEvent: event name "${name}" is in the reserved "${reserved}*" namespace, which belongs to the platform and OpenTelemetry. Use your own prefix, e.g. "myapp.${name.slice(reserved.length)}".`);
401
+ }
402
+ const contextIdentity = this.getIdentityFromContext();
403
+ const severity = options.severity ?? "INFO";
404
+ this.otelLogger.emit({
405
+ timestamp: options.timestamp ?? this.getTimestamp(),
406
+ context: context.active(),
407
+ severityNumber: SEVERITY_NUMBERS[severity],
408
+ severityText: severity,
409
+ attributes: this.buildAttributes(name, {
410
+ properties: attributes,
411
+ eventId: options.eventId,
412
+ identity: {
413
+ userId: options.identity?.userId ?? contextIdentity.userId,
414
+ anonymousId: options.identity?.anonymousId ?? contextIdentity.anonymousId,
415
+ },
416
+ }),
417
+ });
418
+ this.logger.log(`Logged event: ${name}`);
419
+ }
420
+ /**
421
+ * Track a custom event. A thin alias of {@link logEvent}.
369
422
  *
370
423
  * @param eventName - The event name (e.g., `"Button Clicked"`).
371
424
  * @param properties - Optional properties to attach to the event.
@@ -377,18 +430,7 @@ export class IntrospectionClient {
377
430
  * ```
378
431
  */
379
432
  track(eventName, properties, options) {
380
- const attributes = this.buildAttributes(eventName, {
381
- properties,
382
- eventId: options?.eventId,
383
- });
384
- this.otelLogger.emit({
385
- timestamp: this.getTimestamp(),
386
- context: context.active(),
387
- severityNumber: SeverityNumber.INFO,
388
- severityText: "INFO",
389
- attributes,
390
- });
391
- this.logger.log(`Tracked: ${eventName}`);
433
+ this.logEvent(eventName, properties, { eventId: options?.eventId });
392
434
  }
393
435
  /**
394
436
  * Track feedback on a message or response.
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,6 +16,7 @@
16
16
  *
17
17
  * // Track events
18
18
  * client.track("Button Clicked", { buttonId: "submit" });
19
+ * client.logEvent("checkout.completed", { orderId: "o_1" });
19
20
  *
20
21
  * // Track feedback
21
22
  * client.feedback("thumbs_up", { comments: "Very helpful response" });
@@ -26,6 +27,6 @@
26
27
  * ```
27
28
  */
28
29
  export { IntrospectionClient } from "./client.js";
29
- export type { AdvancedOptions, IntrospectionClientOptions, FeedbackOptions, UserTraits, } from "./types.js";
30
+ export type { AdvancedOptions, IntrospectionClientOptions, FeedbackOptions, UserTraits, LogEventOptions, LogEventSeverity, } from "./types.js";
30
31
  export { VERSION } from "./version.js";
31
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,EACV,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -16,6 +16,7 @@
16
16
  *
17
17
  * // Track events
18
18
  * client.track("Button Clicked", { buttonId: "submit" });
19
+ * client.logEvent("checkout.completed", { orderId: "o_1" });
19
20
  *
20
21
  * // Track feedback
21
22
  * client.feedback("thumbs_up", { comments: "Very helpful response" });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUlD,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,iBAAiB;AACjB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAYlD,UAAU;AACV,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Re-export shared types and functions from @introspection-sdk/types
3
3
  */
4
- export type { AdvancedOptions, IntrospectionClientOptions, FeedbackOptions, UserTraits, GenAiContext, IdentityContext, } from "@introspection-sdk/types";
5
- export { generateEventId, toAttributeValue } from "@introspection-sdk/types";
4
+ export type { AdvancedOptions, IntrospectionClientOptions, FeedbackOptions, UserTraits, LogEventOptions, LogEventSeverity, GenAiContext, IdentityContext, } from "@introspection-sdk/types";
5
+ export { generateEventId, reservedEventNamePrefix, toAttributeValue, } from "@introspection-sdk/types";
6
6
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- export { generateEventId, toAttributeValue } from "@introspection-sdk/types";
1
+ export { generateEventId, reservedEventNamePrefix, toAttributeValue, } from "@introspection-sdk/types";
2
2
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Version information for introspection-sdk browser package. */
2
- export declare const VERSION = "0.23.0";
2
+ export declare const VERSION = "0.32.0";
3
3
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** Version information for introspection-sdk browser package. */
2
- export const VERSION = "0.23.0";
2
+ export const VERSION = "0.32.0"; // x-release-please-version
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,2BAA2B"}
package/package.json CHANGED
@@ -1,7 +1,12 @@
1
1
  {
2
2
  "name": "@introspection-sdk/introspection-browser",
3
- "version": "0.23.0",
3
+ "version": "0.32.0",
4
4
  "license": "Apache-2.0",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/introspection-org/introspection-js-sdk.git",
8
+ "directory": "packages/introspection-browser"
9
+ },
5
10
  "description": "Introspection observability SDK for the browser",
6
11
  "engines": {
7
12
  "node": ">=22"
@@ -23,7 +28,7 @@
23
28
  "dist/"
24
29
  ],
25
30
  "devDependencies": {
26
- "@types/node": "^22.20.1",
31
+ "@types/node": "^22.20.5",
27
32
  "eslint": "^9.39.5",
28
33
  "typescript": "5.9.3",
29
34
  "@repo/eslint-config": "0.0.0",
@@ -31,13 +36,13 @@
31
36
  },
32
37
  "dependencies": {
33
38
  "@opentelemetry/api": "^1.9.1",
34
- "@opentelemetry/api-logs": "^0.221.0",
35
- "@opentelemetry/sdk-logs": "^0.221.0",
36
- "@opentelemetry/exporter-logs-otlp-http": "^0.221.0",
37
- "@opentelemetry/resources": "^2.10.0",
39
+ "@opentelemetry/api-logs": "^0.223.0",
40
+ "@opentelemetry/sdk-logs": "^0.223.0",
41
+ "@opentelemetry/exporter-logs-otlp-http": "^0.223.0",
42
+ "@opentelemetry/resources": "^2.12.0",
38
43
  "@opentelemetry/semantic-conventions": "^1.38.0",
39
- "@introspection-sdk/types": "0.23.0",
40
- "@introspection-sdk/http": "0.23.0"
44
+ "@introspection-sdk/http": "0.32.0",
45
+ "@introspection-sdk/types": "0.32.0"
41
46
  },
42
47
  "scripts": {
43
48
  "lint": "eslint . --max-warnings 0",