@respan/cli 0.14.1 → 0.14.2

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.
@@ -9,19 +9,19 @@
9
9
  import { DEMO_PROMPTS } from './prompt-fixtures.js';
10
10
  /** Prompts in the account whose name exactly matches a demo fixture name.
11
11
  *
12
- * Queried with the `name` `iexact` filter, one query per fixture name. NOTE: the
13
- * `icontains`/`iexact` filters do NOT OR-match across a multi-value array — a
14
- * single `value: [a, b, c]` matches nothing — so each name must be queried on
15
- * its own. Server matching is case-insensitive, so we re-confirm with an exact,
16
- * case-sensitive match client-side. Returns every match (so duplicates are all
17
- * found, for clear). */
12
+ * Queried with the `name` exact-match filter (operator `''`), one query per
13
+ * fixture name. The backend rejects `iexact` with a 400, and `icontains` does
14
+ * NOT OR-match across a multi-value array — a single `value: [a, b, c]` matches
15
+ * nothing — so each name is queried on its own. Matches are re-confirmed
16
+ * client-side with an exact, case-sensitive comparison. Returns every match (so
17
+ * duplicates are all found, for clear). */
18
18
  async function findExistingPrompts(ctx) {
19
19
  const found = [];
20
20
  for (const fixture of DEMO_PROMPTS) {
21
21
  const response = await ctx.client.prompts.listPrompts({
22
22
  Authorization: ctx.authHeader,
23
23
  page_size: 100,
24
- filters: { name: { operator: 'iexact', value: [fixture.name] } },
24
+ filters: { name: { operator: '', value: [fixture.name] } },
25
25
  });
26
26
  for (const row of response.results ?? []) {
27
27
  if (row.id && row.name === fixture.name) {
@@ -1,10 +1,19 @@
1
1
  /**
2
- * Frozen snapshot of the demo traces, supplied by the team as ready-to-POST OTLP v2
3
- * bodies (the `trace-bodies/` dataset: a 22-span, 6-LLM-call multi-agent AI Service
4
- * Desk run across two tenants). Source of truth for the traces portion of `respan demo`.
2
+ * Frozen snapshot of the demo traces as ready-to-POST OTLP v2 bodies: a multi-agent
3
+ * AI Service Desk run across two tenants, 17 spans each. Four agents (triage,
4
+ * identity, knowledge, notification) hand off to each other, each making one
5
+ * gpt-6.1-sol call and one tool call, plus a RAG embedding. Source of truth for the
6
+ * traces portion of `respan demo`.
5
7
  *
6
- * Each `body` is a complete OTLP/JSON payload for `POST /api/v2/traces`, captured
7
- * VERBATIM. The seeder (`seed-traces.ts`) re-stamps fresh trace/span ids and recent
8
+ * Span names follow the SDKs' semantic style (`llm.<model>`, `agent.<name>`,
9
+ * `tool.<name>`, `handoff.<from>_to_<to>`, `embedding`; see
10
+ * contribution/writing-instrumentations.md), and handoff spans carry
11
+ * `respan.entity.log_type: handoff`. Derived from the team's original
12
+ * `trace-bodies/` dataset by dropping the Vercel AI SDK wrapper spans
13
+ * (`ai.generateText`, `ai.embed`) and moving the LLM calls to gpt-6.1-sol.
14
+ *
15
+ * Each `body` is a complete OTLP/JSON payload for `POST /api/v2/traces`. The
16
+ * seeder (`seed-traces.ts`) re-stamps fresh trace/span ids and recent
8
17
  * timestamps on each fresh seed, and sets the root span's name to `workflow` (below)
9
18
  * so it shows in the dashboard Workflow column and is unique per trace — the dataset
10
19
  * repeats some scenarios with a byte-identical root span, and a unique root name keeps