@01.software/cli 0.10.0 → 0.10.1

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.
@@ -122,6 +122,77 @@ var tenantContextResponseSchema = z.object({
122
122
  webhookConfigured: z.boolean()
123
123
  }).strict().optional()
124
124
  }).strict();
125
+ var tenantFeatureProgressFeatureSchema = z.enum(["ecommerce"]);
126
+ var tenantFeatureProgressInputSchema = z.object({
127
+ feature: tenantFeatureProgressFeatureSchema.describe(
128
+ "Feature to inspect for tenant implementation readiness"
129
+ ),
130
+ includeEvidence: z.boolean().optional().default(false).describe("Include sanitized counts and static surface evidence")
131
+ }).strict();
132
+ var tenantFeatureProgressStatusSchema = z.enum([
133
+ "ready",
134
+ "attention",
135
+ "blocked"
136
+ ]);
137
+ var tenantFeatureProgressItemStateSchema = z.enum([
138
+ "complete",
139
+ "incomplete",
140
+ "blocked",
141
+ "attention",
142
+ "optional",
143
+ "unknown",
144
+ "manual",
145
+ "not-applicable"
146
+ ]);
147
+ var tenantFeatureProgressSeveritySchema = z.enum([
148
+ "required",
149
+ "recommended",
150
+ "optional"
151
+ ]);
152
+ var tenantFeatureProgressEvidenceValueSchema = z.union([
153
+ z.string(),
154
+ z.number(),
155
+ z.boolean(),
156
+ z.null()
157
+ ]);
158
+ var tenantFeatureProgressItemSchema = z.object({
159
+ id: z.string(),
160
+ title: z.string(),
161
+ state: tenantFeatureProgressItemStateSchema,
162
+ severity: tenantFeatureProgressSeveritySchema,
163
+ summary: z.string(),
164
+ evidence: z.record(z.string(), tenantFeatureProgressEvidenceValueSchema).optional()
165
+ }).strict();
166
+ var tenantFeatureProgressGroupSchema = z.object({
167
+ id: z.string(),
168
+ title: z.string(),
169
+ summary: z.string().optional(),
170
+ items: z.array(tenantFeatureProgressItemSchema)
171
+ }).strict();
172
+ var tenantFeatureProgressResponseSchema = z.object({
173
+ schemaVersion: z.literal(1),
174
+ feature: tenantFeatureProgressFeatureSchema,
175
+ status: tenantFeatureProgressStatusSchema,
176
+ generatedAt: z.string(),
177
+ tenant: z.object({
178
+ id: z.string(),
179
+ name: z.string(),
180
+ plan: z.string()
181
+ }).strict(),
182
+ capability: z.object({
183
+ effectiveFeatures: z.array(z.string()),
184
+ planBlocked: z.array(z.string()),
185
+ closureAdded: z.array(z.string())
186
+ }).strict(),
187
+ summary: z.object({
188
+ complete: z.number().int().nonnegative(),
189
+ total: z.number().int().nonnegative(),
190
+ blocking: z.number().int().nonnegative(),
191
+ manual: z.number().int().nonnegative(),
192
+ unknown: z.number().int().nonnegative()
193
+ }).strict(),
194
+ groups: z.array(tenantFeatureProgressGroupSchema)
195
+ }).strict();
125
196
  var COLLECTION_SCHEMA_CONTRACT_VERSION = 1;
126
197
  var collectionSchemaEndpointParamsSchema = z.object({
127
198
  collectionSlug: z.string().min(1, "collectionSlug is required")
@@ -187,6 +258,29 @@ var updateTransactionSchema = z2.object({
187
258
  amount: z2.number().int().positive().optional().describe("Provider-confirmed amount for verified paid confirmation")
188
259
  }).strict();
189
260
  var UpdateTransactionSchema = updateTransactionSchema;
261
+ var providerSlugSchema = z2.string().trim().regex(/^[a-z0-9][a-z0-9_-]{0,63}$/, "pgProvider must be lowercase slug");
262
+ var confirmPaymentSchema = z2.object({
263
+ orderNumber: z2.string().min(1).optional(),
264
+ pgPaymentId: z2.string().min(1, "pgPaymentId is required").describe("Provider payment identifier stored on the transaction"),
265
+ pgProvider: providerSlugSchema.describe(
266
+ "Payment provider slug, e.g. toss, portone, stripe"
267
+ ),
268
+ pgOrderId: z2.string().min(1).optional(),
269
+ amount: z2.number().int().nonnegative("amount must be non-negative").describe("Provider-confirmed amount in minor units"),
270
+ currency: z2.string().min(1).optional(),
271
+ paymentMethod: z2.string().optional(),
272
+ receiptUrl: z2.string().url().optional(),
273
+ approvedAt: z2.string().optional(),
274
+ providerStatus: z2.string().optional(),
275
+ providerEventId: z2.string().min(1).optional(),
276
+ confirmationSource: z2.enum([
277
+ "provider_webhook",
278
+ "provider_lookup",
279
+ "provider_api_confirm",
280
+ "manual_server"
281
+ ]).optional(),
282
+ metadata: z2.record(z2.string(), z2.unknown()).optional()
283
+ }).strict();
190
284
  var returnReasonSchema = z2.enum([
191
285
  "change_of_mind",
192
286
  "defective",
@@ -259,6 +353,11 @@ var MCP_TOOL_CONTRACT = {
259
353
  oauthScope: "mcp:read",
260
354
  readOnly: true
261
355
  },
356
+ "check-feature-progress": {
357
+ consoleRole: "tenant-viewer",
358
+ oauthScope: "mcp:read",
359
+ readOnly: true
360
+ },
262
361
  "add-cart-item": {
263
362
  consoleRole: "tenant-editor",
264
363
  oauthScope: "mcp:write",
@@ -360,9 +459,7 @@ var MCP_TOOL_CONTRACT = {
360
459
  readOnly: true
361
460
  }
362
461
  };
363
- var MCP_TOOL_NAMES = Object.keys(
364
- MCP_TOOL_CONTRACT
365
- );
462
+ var MCP_TOOL_NAMES = Object.keys(MCP_TOOL_CONTRACT);
366
463
  function isMcpToolName(toolName) {
367
464
  return Object.prototype.hasOwnProperty.call(MCP_TOOL_CONTRACT, toolName);
368
465
  }
@@ -466,6 +563,13 @@ var TOOL_POLICY_MANIFEST = {
466
563
  consoleSurface: "GET /api/tenants/context",
467
564
  annotationPolicy: READ_ONLY_ANNOTATION
468
565
  },
566
+ "check-feature-progress": {
567
+ category: "read-only-tenant",
568
+ oauthScope: MCP_SCOPES.read,
569
+ consoleRole: "tenant-viewer",
570
+ consoleSurface: "GET /api/tenants/feature-progress",
571
+ annotationPolicy: READ_ONLY_ANNOTATION
572
+ },
469
573
  // ── Cart mutations (mcp:write, tenant-editor) ──
470
574
  "add-cart-item": {
471
575
  category: "mutation-cart",
@@ -515,7 +619,7 @@ var TOOL_POLICY_MANIFEST = {
515
619
  exemptionReason: REASON_CART_EPHEMERAL
516
620
  },
517
621
  // ── Order mutations (mcp:write, tenant-admin) ──
518
- "checkout": {
622
+ checkout: {
519
623
  category: "mutation-order",
520
624
  oauthScope: MCP_SCOPES.write,
521
625
  consoleRole: "tenant-admin",
@@ -1809,6 +1913,11 @@ async function getCollectionSchemaTool({
1809
1913
  function getTenantContextPath(includeCounts) {
1810
1914
  return includeCounts ? "/api/tenants/context?counts=true" : "/api/tenants/context";
1811
1915
  }
1916
+ function getTenantFeatureProgressPath(feature, includeEvidence) {
1917
+ const search = new URLSearchParams({ feature });
1918
+ if (includeEvidence) search.set("includeEvidence", "true");
1919
+ return `/api/tenants/feature-progress?${search.toString()}`;
1920
+ }
1812
1921
  async function getTenantContext(includeCounts = false) {
1813
1922
  const apiKey = resolveApiKey();
1814
1923
  const data = await consoleGet(
@@ -1817,6 +1926,14 @@ async function getTenantContext(includeCounts = false) {
1817
1926
  );
1818
1927
  return tenantContextResponseSchema.parse(data);
1819
1928
  }
1929
+ async function getTenantFeatureProgress(feature, includeEvidence = false) {
1930
+ const apiKey = resolveApiKey();
1931
+ const data = await consoleGet(
1932
+ getTenantFeatureProgressPath(feature, includeEvidence),
1933
+ apiKey
1934
+ );
1935
+ return tenantFeatureProgressResponseSchema.parse(data);
1936
+ }
1820
1937
 
1821
1938
  // src/tools/get-tenant-context.ts
1822
1939
  var schema23 = tenantContextToolInputSchema.shape;
@@ -1896,6 +2013,30 @@ async function handler({
1896
2013
  }
1897
2014
  }
1898
2015
 
2016
+ // src/tools/check-feature-progress.ts
2017
+ var schema24 = tenantFeatureProgressInputSchema.shape;
2018
+ var metadata24 = {
2019
+ name: "check-feature-progress",
2020
+ description: "Check tenant implementation progress for a supported feature. Start with feature=ecommerce to inspect catalog, cart, checkout, payment result, webhook, and operations readiness without mutating tenant data.",
2021
+ annotations: {
2022
+ title: "Check Feature Progress",
2023
+ readOnlyHint: true,
2024
+ destructiveHint: false,
2025
+ idempotentHint: true
2026
+ }
2027
+ };
2028
+ async function handler2({
2029
+ feature,
2030
+ includeEvidence
2031
+ }) {
2032
+ try {
2033
+ const progress = await getTenantFeatureProgress(feature, includeEvidence);
2034
+ return toolSuccess({ progress });
2035
+ } catch (error) {
2036
+ return toolError(error);
2037
+ }
2038
+ }
2039
+
1899
2040
  // src/tools/list-configurable-fields.ts
1900
2041
  import { z as z22 } from "zod";
1901
2042
 
@@ -1920,12 +2061,12 @@ function invalidateFieldConfigCache() {
1920
2061
  }
1921
2062
 
1922
2063
  // src/tools/list-configurable-fields.ts
1923
- var schema24 = {
2064
+ var schema25 = {
1924
2065
  collection: z22.string().optional().describe(
1925
2066
  "Filter by collection slug (optional \u2014 returns all if omitted). Use this filter to reduce response size when you know which collection to check."
1926
2067
  )
1927
2068
  };
1928
- var metadata24 = {
2069
+ var metadata25 = {
1929
2070
  name: "list-configurable-fields",
1930
2071
  description: "List all configurable fields for tenant collections with current visibility state. Shows which fields can be shown/hidden and their current status. Returns all collections including inactive features \u2014 cross-reference with get-tenant-context for active features. Response includes ~300 fields across 47 collections \u2014 use collection filter when possible.",
1931
2072
  annotations: {
@@ -1957,7 +2098,7 @@ async function listConfigurableFields(params) {
1957
2098
 
1958
2099
  // src/tools/update-field-config.ts
1959
2100
  import { z as z23 } from "zod";
1960
- var schema25 = {
2101
+ var schema26 = {
1961
2102
  collection: z23.string().min(1).describe("Collection slug (required)"),
1962
2103
  hiddenFields: z23.array(z23.string().min(1).max(200)).max(300).describe(
1963
2104
  "Fields to hide (required). This is a FULL REPLACE \u2014 fields NOT in this list will be shown. Pass [] to show all fields. Use list-configurable-fields first to see available field paths."
@@ -1966,7 +2107,7 @@ var schema25 = {
1966
2107
  "Hide the entire collection from Admin Panel (optional). When true, individual hiddenFields are irrelevant."
1967
2108
  )
1968
2109
  };
1969
- var metadata25 = {
2110
+ var metadata26 = {
1970
2111
  name: "update-field-config",
1971
2112
  description: "Update field visibility configuration for a tenant collection. Hidden fields are removed from the Admin Panel UI. IMPORTANT: hiddenFields is a full replace, not a merge. Always call list-configurable-fields first to see current state.",
1972
2113
  annotations: {
@@ -2426,7 +2567,7 @@ function getRecipe(goal, runtime = "both") {
2426
2567
  }
2427
2568
 
2428
2569
  // src/tools/sdk-get-recipe.ts
2429
- var schema26 = {
2570
+ var schema27 = {
2430
2571
  goal: z24.enum([
2431
2572
  "fetch-list",
2432
2573
  "fetch-by-id",
@@ -2443,7 +2584,7 @@ var schema26 = {
2443
2584
  collection: z24.string().optional().describe("Specific collection name if applicable"),
2444
2585
  includeExample: z24.boolean().default(true).describe("Whether to include a full code example")
2445
2586
  };
2446
- var metadata26 = {
2587
+ var metadata27 = {
2447
2588
  name: "sdk-get-recipe",
2448
2589
  description: "Get a complete SDK code recipe for a specific task. Returns recommended approach, code example, and related documentation links. Use this FIRST when the user asks how to do something with the SDK.",
2449
2590
  annotations: {
@@ -2453,7 +2594,7 @@ var metadata26 = {
2453
2594
  idempotentHint: true
2454
2595
  }
2455
2596
  };
2456
- function handler2({
2597
+ function handler3({
2457
2598
  goal,
2458
2599
  runtime,
2459
2600
  collection,
@@ -2661,11 +2802,11 @@ function searchDocs(query, limit = 5) {
2661
2802
  }
2662
2803
 
2663
2804
  // src/tools/sdk-search-docs.ts
2664
- var schema27 = {
2805
+ var schema28 = {
2665
2806
  query: z25.string().min(2).describe('Search keyword or phrase (e.g. "infinite scroll", "webhook", "customer login")'),
2666
2807
  limit: z25.number().min(1).max(10).default(5).describe("Maximum results to return (1-10, default: 5)")
2667
2808
  };
2668
- var metadata27 = {
2809
+ var metadata28 = {
2669
2810
  name: "sdk-search-docs",
2670
2811
  description: "Search SDK documentation by keyword. Returns matching topics with summaries and resource links. Use when looking for specific SDK features or patterns.",
2671
2812
  annotations: {
@@ -2675,7 +2816,7 @@ var metadata27 = {
2675
2816
  idempotentHint: true
2676
2817
  }
2677
2818
  };
2678
- function handler3({
2819
+ function handler4({
2679
2820
  query,
2680
2821
  limit
2681
2822
  }) {
@@ -2701,7 +2842,7 @@ function handler3({
2701
2842
 
2702
2843
  // src/tools/sdk-get-auth-setup.ts
2703
2844
  import { z as z26 } from "zod";
2704
- var schema28 = {
2845
+ var schema29 = {
2705
2846
  scenario: z26.enum([
2706
2847
  "browser-client",
2707
2848
  "server-client",
@@ -2711,7 +2852,7 @@ var schema28 = {
2711
2852
  "webhook-verification"
2712
2853
  ]).describe("Authentication scenario")
2713
2854
  };
2714
- var metadata28 = {
2855
+ var metadata29 = {
2715
2856
  name: "sdk-get-auth-setup",
2716
2857
  description: "Get the current authentication setup for a specific scenario. Returns env var names, code snippets, and security notes.",
2717
2858
  annotations: {
@@ -2850,7 +2991,7 @@ export async function POST(request: Request) {
2850
2991
  ]
2851
2992
  }
2852
2993
  };
2853
- function handler4({
2994
+ function handler5({
2854
2995
  scenario
2855
2996
  }) {
2856
2997
  try {
@@ -2867,12 +3008,12 @@ function handler4({
2867
3008
  // src/tools/sdk-get-collection-pattern.ts
2868
3009
  import { z as z27 } from "zod";
2869
3010
  import { COLLECTIONS, SERVER_COLLECTIONS as SERVER_COLLECTIONS4 } from "@01.software/sdk";
2870
- var schema29 = {
3011
+ var schema30 = {
2871
3012
  collection: z27.enum(SERVER_COLLECTIONS4).describe("Collection name"),
2872
3013
  operation: z27.enum(["read", "write", "full-crud"]).default("read").describe("What operations are needed"),
2873
3014
  surface: z27.enum(["query-builder", "react-query", "server-api"]).default("query-builder").describe("Preferred API surface")
2874
3015
  };
2875
- var metadata29 = {
3016
+ var metadata30 = {
2876
3017
  name: "sdk-get-collection-pattern",
2877
3018
  description: "Get the recommended CRUD pattern for a specific collection. Returns code examples for the chosen API surface and operation type.",
2878
3019
  annotations: {
@@ -3045,7 +3186,7 @@ function generatePattern(collection, operation, surface) {
3045
3186
  ].filter(Boolean)
3046
3187
  };
3047
3188
  }
3048
- function handler5({
3189
+ function handler6({
3049
3190
  collection,
3050
3191
  operation,
3051
3192
  surface
@@ -3074,13 +3215,13 @@ function handler5({
3074
3215
 
3075
3216
  // src/prompts/sdk-usage-guide.ts
3076
3217
  import { z as z28 } from "zod";
3077
- var schema30 = {
3218
+ var schema31 = {
3078
3219
  goal: z28.string().describe('What the user wants to accomplish (e.g., "query product list", "create order")'),
3079
3220
  runtime: z28.enum(["browser", "server"]).optional().describe("Target runtime: browser (React/Next.js client) or server (Node.js)"),
3080
3221
  surface: z28.enum(["query-builder", "react-query", "customer-api", "server-api"]).optional().describe("Preferred API surface"),
3081
3222
  collection: z28.string().optional().describe("Specific collection if relevant")
3082
3223
  };
3083
- var metadata30 = {
3224
+ var metadata31 = {
3084
3225
  name: "sdk-usage-guide",
3085
3226
  title: "SDK Usage Guide",
3086
3227
  description: "Provides guidance on how to perform a specific task using the 01.software SDK",
@@ -3219,12 +3360,12 @@ You can perform the "${goal}" task by following the patterns above.`;
3219
3360
  // src/prompts/collection-query-help.ts
3220
3361
  import { z as z29 } from "zod";
3221
3362
  import { COLLECTIONS as COLLECTIONS2, SERVER_COLLECTIONS as SERVER_COLLECTIONS5 } from "@01.software/sdk";
3222
- var schema31 = {
3363
+ var schema32 = {
3223
3364
  collection: z29.enum(SERVER_COLLECTIONS5).describe("Collection name"),
3224
3365
  operation: z29.enum(["find", "create", "update", "delete"]).describe("Operation to perform (find, create, update, delete)"),
3225
3366
  filters: z29.string().optional().describe("Filter conditions (JSON string, optional)")
3226
3367
  };
3227
- var metadata31 = {
3368
+ var metadata32 = {
3228
3369
  name: "collection-query-help",
3229
3370
  title: "Collection Query Help",
3230
3371
  description: "Provides guidance on how to write queries for a specific collection",
@@ -3317,7 +3458,7 @@ ${operation === "find" ? `- Use \`where\` option for filtering (Payload query sy
3317
3458
 
3318
3459
  // src/prompts/order-flow-guide.ts
3319
3460
  import { z as z30 } from "zod";
3320
- var schema32 = {
3461
+ var schema33 = {
3321
3462
  scenario: z30.enum([
3322
3463
  "simple-order",
3323
3464
  "cart-checkout",
@@ -3325,7 +3466,7 @@ var schema32 = {
3325
3466
  "fulfillment-tracking"
3326
3467
  ]).describe("Order flow scenario")
3327
3468
  };
3328
- var metadata32 = {
3469
+ var metadata33 = {
3329
3470
  name: "order-flow-guide",
3330
3471
  title: "Order Flow Guide",
3331
3472
  description: "Provides step-by-step guidance for ecommerce order flows including creation, checkout, returns, and fulfillment.",
@@ -3511,7 +3652,7 @@ ${SCENARIOS[scenario] || "Unknown scenario."}
3511
3652
 
3512
3653
  // src/prompts/feature-setup-guide.ts
3513
3654
  import { z as z31 } from "zod";
3514
- var schema33 = {
3655
+ var schema34 = {
3515
3656
  feature: z31.enum([
3516
3657
  "ecommerce",
3517
3658
  "customers",
@@ -3527,10 +3668,10 @@ var schema33 = {
3527
3668
  "community"
3528
3669
  ]).describe("Feature to get setup guide for")
3529
3670
  };
3530
- var metadata33 = {
3671
+ var metadata34 = {
3531
3672
  name: "feature-setup-guide",
3532
3673
  title: "Feature Setup Guide",
3533
- description: "Setup checklist and remediation guide for a tenant feature. Load before using get-tenant-context to diagnose setup gaps.",
3674
+ description: "Setup checklist and remediation guide for a tenant feature. Load with check-feature-progress and get-tenant-context to diagnose setup gaps.",
3534
3675
  role: "assistant"
3535
3676
  };
3536
3677
  var FEATURES = {
@@ -3560,6 +3701,7 @@ product-options, product-option-values, product-categories, product-tags, produc
3560
3701
  ### Config
3561
3702
 
3562
3703
  - **Webhook URL** must be configured in tenant settings for payment gateway callbacks
3704
+ - Use \`check-feature-progress\` for the tenant-aware ecommerce progress check
3563
3705
  - Use \`get-tenant-context\` to check current webhook configuration`,
3564
3706
  customers: `## Customers Setup Guide
3565
3707
 
@@ -3726,18 +3868,19 @@ function featureSetupGuide({
3726
3868
  ${FEATURES[feature] || "Unknown feature."}
3727
3869
 
3728
3870
  ## Related MCP Tools
3871
+ - \`check-feature-progress\` \u2014 run the tenant-aware ecommerce implementation progress check
3729
3872
  - \`get-tenant-context\` \u2014 check current collection counts and feature status
3730
3873
  - \`query-collection\` \u2014 verify existing documents in a collection
3731
3874
  - \`get-collection-schema\` \u2014 inspect tenant-aware fields before creating data via SDK or Console UI`;
3732
3875
  }
3733
3876
 
3734
3877
  // src/resources/(config)/app.ts
3735
- var metadata34 = {
3878
+ var metadata35 = {
3736
3879
  name: "app-config",
3737
3880
  title: "Application Config",
3738
3881
  description: "01.software SDK and MCP server configuration information"
3739
3882
  };
3740
- function handler6() {
3883
+ function handler7() {
3741
3884
  return `# 01.software MCP Server Configuration
3742
3885
 
3743
3886
  ## Server Info
@@ -3755,15 +3898,16 @@ HTTP MCP uses OAuth discovery and Authorization Code + PKCE.
3755
3898
  url = "https://mcp.01.software/mcp"
3756
3899
  \`\`\`
3757
3900
 
3758
- ## Hosted HTTP OAuth Tools (8)
3901
+ ## Hosted HTTP OAuth Tools (9)
3759
3902
 
3760
3903
  The hosted HTTP MCP endpoint at https://mcp.01.software/mcp exposes only these OAuth-safe tools:
3761
3904
 
3762
3905
  ### Schema (1)
3763
3906
  - \`get-collection-schema\` - Get authoritative tenant-aware collection schema
3764
3907
 
3765
- ### Tenant Context (1)
3908
+ ### Tenant Context (2)
3766
3909
  - \`get-tenant-context\` - Get tenant features, active collections, and field config
3910
+ - \`check-feature-progress\` - Check ecommerce implementation progress without mutating tenant data
3767
3911
 
3768
3912
  ### Field Config (2)
3769
3913
  - \`list-configurable-fields\` - List configurable fields and current hidden state
@@ -3775,7 +3919,7 @@ The hosted HTTP MCP endpoint at https://mcp.01.software/mcp exposes only these O
3775
3919
  - \`sdk-get-auth-setup\` - Get framework-specific auth setup guidance
3776
3920
  - \`sdk-get-collection-pattern\` - Get collection-specific usage patterns
3777
3921
 
3778
- ## Local CLI Stdio Surface (29)
3922
+ ## Local CLI Stdio Surface (30)
3779
3923
 
3780
3924
  For trusted local server-key workflows, start the stdio server:
3781
3925
 
@@ -3783,7 +3927,7 @@ For trusted local server-key workflows, start the stdio server:
3783
3927
  npx @01.software/cli mcp
3784
3928
  \`\`\`
3785
3929
 
3786
- Local stdio can expose generic read, order, return, cart, validation, stock, schema, tenant context, field config, and guidance tools. Generic collection write tools (create/update/delete/update-many/delete-many) are intentionally absent on every transport; use the SDK server client for generic writes.
3930
+ Local stdio can expose generic read, order, return, cart, validation, stock, schema, tenant context, feature progress, field config, and guidance tools. Generic collection write tools (create/update/delete/update-many/delete-many) are intentionally absent on every transport; use the SDK server client for generic writes.
3787
3931
 
3788
3932
  ## Rate Limits
3789
3933
 
@@ -3797,7 +3941,7 @@ Rate limits depend on your tenant plan:
3797
3941
 
3798
3942
  // src/resources/(collections)/schema.ts
3799
3943
  import { COLLECTIONS as COLLECTIONS3 } from "@01.software/sdk";
3800
- var metadata35 = {
3944
+ var metadata36 = {
3801
3945
  name: "collections-schema",
3802
3946
  title: "Collection Schema Info",
3803
3947
  description: "Available collections and their schema information"
@@ -3883,7 +4027,7 @@ var COLLECTIONS_BY_CATEGORY = {
3883
4027
  "event-tags"
3884
4028
  ]
3885
4029
  };
3886
- function handler7() {
4030
+ function handler8() {
3887
4031
  const categoryDocs = Object.entries(COLLECTIONS_BY_CATEGORY).map(([category, collections]) => {
3888
4032
  const collectionList = collections.filter((c) => COLLECTIONS3.includes(c)).map((c) => `- **${c}**`).join("\n");
3889
4033
  return `## ${category}
@@ -3935,12 +4079,12 @@ Total available collections: ${COLLECTIONS3.length}`;
3935
4079
  }
3936
4080
 
3937
4081
  // src/resources/(docs)/getting-started.ts
3938
- var metadata36 = {
4082
+ var metadata37 = {
3939
4083
  name: "docs-getting-started",
3940
4084
  title: "Getting Started",
3941
4085
  description: "01.software SDK getting started guide"
3942
4086
  };
3943
- function handler8() {
4087
+ function handler9() {
3944
4088
  return `# Getting Started
3945
4089
 
3946
4090
  A guide to getting started with the 01.software SDK.
@@ -3974,18 +4118,18 @@ const result = await client.collections.from('products').find({
3974
4118
 
3975
4119
  ## Next Steps
3976
4120
 
3977
- - [Quick Start](/docs/getting-started/quick-start) - Get started in 5 minutes
3978
- - [Configuration](/docs/getting-started/configuration) - Detailed configuration options
3979
- - [API Reference](/docs/api) - Full API documentation`;
4121
+ - [SDK Guide](/developers/sdk) - Install and query workspace content
4122
+ - [Authentication & Keys](/developers/authentication) - Choose the right key for each surface
4123
+ - [API](/developers/api) - Use the HTTP API when SDKs are not a fit`;
3980
4124
  }
3981
4125
 
3982
4126
  // src/resources/(docs)/guides.ts
3983
- var metadata37 = {
4127
+ var metadata38 = {
3984
4128
  name: "docs-guides",
3985
4129
  title: "Guides",
3986
4130
  description: "01.software SDK usage guides"
3987
4131
  };
3988
- function handler9() {
4132
+ function handler10() {
3989
4133
  return `# Guides
3990
4134
 
3991
4135
  Comprehensive guides to master the 01.software SDK.
@@ -4187,16 +4331,16 @@ Payload query syntax operators:
4187
4331
 
4188
4332
  For ecommerce collections, \`products.listing.*\` is the browse/search projection. Authoritative sellable price and stock remain on \`product-variants\`.
4189
4333
 
4190
- For more detailed guides, see the [Guides page](/docs/guides).`;
4334
+ For more implementation guidance, see the [SDK Guide](/developers/sdk).`;
4191
4335
  }
4192
4336
 
4193
4337
  // src/resources/(docs)/api.ts
4194
- var metadata38 = {
4338
+ var metadata39 = {
4195
4339
  name: "docs-api",
4196
4340
  title: "API Reference",
4197
4341
  description: "01.software SDK API reference documentation"
4198
4342
  };
4199
- function handler10() {
4343
+ function handler11() {
4200
4344
  return `# API Reference
4201
4345
 
4202
4346
  Comprehensive documentation for all methods and types in the 01.software SDK.
@@ -4473,16 +4617,16 @@ client.customer.isAuthenticated() // Check auth status
4473
4617
  client.customer.logout() // Clear token
4474
4618
  \`\`\`
4475
4619
 
4476
- For more details, see the [full API documentation](/docs/api).`;
4620
+ For more details, see the [API documentation](/developers/api).`;
4477
4621
  }
4478
4622
 
4479
4623
  // src/resources/(docs)/query-builder.ts
4480
- var metadata39 = {
4624
+ var metadata40 = {
4481
4625
  name: "docs-query-builder",
4482
4626
  title: "Query Builder",
4483
4627
  description: "01.software SDK Query Builder API reference (client.collections.from)"
4484
4628
  };
4485
- function handler11() {
4629
+ function handler12() {
4486
4630
  return `# Query Builder API
4487
4631
 
4488
4632
  The Query Builder provides a fluent interface for querying collections via \`client.collections.from(collection)\`.
@@ -4671,12 +4815,12 @@ console.log(result.hasNextPage) // true
4671
4815
  }
4672
4816
 
4673
4817
  // src/resources/(docs)/react-query.ts
4674
- var metadata40 = {
4818
+ var metadata41 = {
4675
4819
  name: "docs-react-query",
4676
4820
  title: "React Query Hooks",
4677
4821
  description: "01.software SDK React Query hooks reference (client.query)"
4678
4822
  };
4679
- function handler12() {
4823
+ function handler13() {
4680
4824
  return `# React Query Hooks
4681
4825
 
4682
4826
  React Query hooks are available on the browser-side \`Client\` via \`client.query\`. They provide automatic caching, background refetching, and cache invalidation.
@@ -4919,12 +5063,12 @@ export function ProductList() {
4919
5063
  }
4920
5064
 
4921
5065
  // src/resources/(docs)/server-api.ts
4922
- var metadata41 = {
5066
+ var metadata42 = {
4923
5067
  name: "docs-server-api",
4924
5068
  title: "Server-side API",
4925
5069
  description: "01.software SDK server-side API reference (client.commerce) for orders, fulfillments, returns, carts, and validation"
4926
5070
  };
4927
- function handler13() {
5071
+ function handler14() {
4928
5072
  return `# Server-side API
4929
5073
 
4930
5074
  Server-side operations are available via \`client.commerce\` on \`ServerClient\`. Use \`createServerClient\` with both \`publishableKey\` and \`secretKey\`.
@@ -5181,12 +5325,12 @@ const result = await client.commerce.shipping.calculate({
5181
5325
  }
5182
5326
 
5183
5327
  // src/resources/(docs)/customer-auth.ts
5184
- var metadata42 = {
5328
+ var metadata43 = {
5185
5329
  name: "docs-customer-auth",
5186
5330
  title: "Customer Auth API",
5187
5331
  description: "01.software SDK Customer Auth API reference (client.customer)"
5188
5332
  };
5189
- function handler14() {
5333
+ function handler15() {
5190
5334
  return `# Customer Auth API
5191
5335
 
5192
5336
  Customer authentication and profile management is available via \`client.customer\` on the browser-side \`Client\`.
@@ -5359,12 +5503,12 @@ async function loadProfile() {
5359
5503
  }
5360
5504
 
5361
5505
  // src/resources/(docs)/browser-vs-server.ts
5362
- var metadata43 = {
5506
+ var metadata44 = {
5363
5507
  name: "docs-browser-vs-server",
5364
5508
  title: "Client vs ServerClient",
5365
5509
  description: "When to use Client (createClient) vs ServerClient (createServerClient) in the 01.software SDK"
5366
5510
  };
5367
- function handler15() {
5511
+ function handler16() {
5368
5512
  return `# Client vs ServerClient
5369
5513
 
5370
5514
  The SDK provides two client types for different execution environments.
@@ -5518,12 +5662,12 @@ export function ProductList() {
5518
5662
  }
5519
5663
 
5520
5664
  // src/resources/(docs)/file-upload.ts
5521
- var metadata44 = {
5665
+ var metadata45 = {
5522
5666
  name: "docs-file-upload",
5523
5667
  title: "File Upload",
5524
5668
  description: "01.software SDK file upload patterns using the images collection"
5525
5669
  };
5526
- function handler16() {
5670
+ function handler17() {
5527
5671
  return `# File Upload
5528
5672
 
5529
5673
  Upload files using the \`images\` collection (tenant-scoped, unified image store) or \`system-media\` (global, non-tenant).
@@ -5669,12 +5813,12 @@ The platform stores files in Cloudflare R2 and serves via CDN (\`cdn.01.software
5669
5813
  }
5670
5814
 
5671
5815
  // src/resources/(docs)/webhook.ts
5672
- var metadata45 = {
5816
+ var metadata46 = {
5673
5817
  name: "docs-webhook",
5674
5818
  title: "Webhooks",
5675
5819
  description: "01.software SDK webhook verification and event handling"
5676
5820
  };
5677
- function handler17() {
5821
+ function handler18() {
5678
5822
  return `# Webhooks
5679
5823
 
5680
5824
  The platform dispatches HMAC-SHA256 signed webhook events to your registered URLs. Tenant developers own routing inside their webhook handler.
@@ -5784,7 +5928,7 @@ Configure webhook URLs in the 01.software console under Tenant Settings > Webhoo
5784
5928
 
5785
5929
  // src/server.ts
5786
5930
  var REGISTERED_TOOLS_BY_SERVER = /* @__PURE__ */ new WeakMap();
5787
- function registerTool(server, schema34, meta, handler18) {
5931
+ function registerTool(server, schema35, meta, handler19) {
5788
5932
  let registered = REGISTERED_TOOLS_BY_SERVER.get(server);
5789
5933
  if (!registered) {
5790
5934
  registered = /* @__PURE__ */ new Set();
@@ -5795,7 +5939,7 @@ function registerTool(server, schema34, meta, handler18) {
5795
5939
  meta.name,
5796
5940
  {
5797
5941
  description: meta.description,
5798
- inputSchema: schema34,
5942
+ inputSchema: schema35,
5799
5943
  annotations: meta.annotations
5800
5944
  },
5801
5945
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -5824,7 +5968,7 @@ function registerTool(server, schema34, meta, handler18) {
5824
5968
  const summary = activeSummary ?? ownSummary;
5825
5969
  let result = null;
5826
5970
  try {
5827
- result = await handler18(params);
5971
+ result = await handler19(params);
5828
5972
  return { content: [{ type: "text", text: result }] };
5829
5973
  } finally {
5830
5974
  if (summary) {
@@ -5841,26 +5985,26 @@ function registerTool(server, schema34, meta, handler18) {
5841
5985
  }
5842
5986
  );
5843
5987
  }
5844
- function registerPrompt(server, schema34, meta, handler18) {
5988
+ function registerPrompt(server, schema35, meta, handler19) {
5845
5989
  server.registerPrompt(
5846
5990
  meta.name,
5847
5991
  {
5848
5992
  title: meta.title,
5849
5993
  description: meta.description,
5850
- argsSchema: schema34
5994
+ argsSchema: schema35
5851
5995
  },
5852
5996
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
5853
5997
  (params) => ({
5854
5998
  messages: [
5855
5999
  {
5856
6000
  role: meta.role ?? "assistant",
5857
- content: { type: "text", text: handler18(params) }
6001
+ content: { type: "text", text: handler19(params) }
5858
6002
  }
5859
6003
  ]
5860
6004
  })
5861
6005
  );
5862
6006
  }
5863
- function registerStaticResource(server, uri, meta, handler18) {
6007
+ function registerStaticResource(server, uri, meta, handler19) {
5864
6008
  server.registerResource(
5865
6009
  meta.name,
5866
6010
  uri,
@@ -5870,7 +6014,7 @@ function registerStaticResource(server, uri, meta, handler18) {
5870
6014
  mimeType: meta.mimeType ?? "text/plain"
5871
6015
  },
5872
6016
  async (url) => ({
5873
- contents: [{ uri: url.href, text: handler18() }]
6017
+ contents: [{ uri: url.href, text: handler19() }]
5874
6018
  })
5875
6019
  );
5876
6020
  }
@@ -5881,52 +6025,238 @@ function createServer(options = {}) {
5881
6025
  version: "0.1.0"
5882
6026
  });
5883
6027
  if (toolSurface === "full") {
5884
- registerTool(server, schema, metadata, queryCollection);
5885
- registerTool(server, schema2, metadata2, getCollectionById);
6028
+ registerTool(
6029
+ server,
6030
+ schema,
6031
+ metadata,
6032
+ queryCollection
6033
+ );
6034
+ registerTool(
6035
+ server,
6036
+ schema2,
6037
+ metadata2,
6038
+ getCollectionById
6039
+ );
5886
6040
  registerTool(server, schema3, metadata3, getOrder);
5887
6041
  registerTool(server, schema4, metadata4, createOrder);
5888
6042
  registerTool(server, schema5, metadata5, updateOrder);
5889
6043
  registerTool(server, schema6, metadata6, checkout);
5890
- registerTool(server, schema7, metadata7, createFulfillment);
5891
- registerTool(server, schema8, metadata8, updateFulfillment);
5892
- registerTool(server, schema9, metadata9, updateTransaction);
5893
- registerTool(server, schema10, metadata10, createReturn);
5894
- registerTool(server, schema11, metadata11, updateReturn);
5895
- registerTool(server, schema12, metadata12, returnWithRefund);
6044
+ registerTool(
6045
+ server,
6046
+ schema7,
6047
+ metadata7,
6048
+ createFulfillment
6049
+ );
6050
+ registerTool(
6051
+ server,
6052
+ schema8,
6053
+ metadata8,
6054
+ updateFulfillment
6055
+ );
6056
+ registerTool(
6057
+ server,
6058
+ schema9,
6059
+ metadata9,
6060
+ updateTransaction
6061
+ );
6062
+ registerTool(
6063
+ server,
6064
+ schema10,
6065
+ metadata10,
6066
+ createReturn
6067
+ );
6068
+ registerTool(
6069
+ server,
6070
+ schema11,
6071
+ metadata11,
6072
+ updateReturn
6073
+ );
6074
+ registerTool(
6075
+ server,
6076
+ schema12,
6077
+ metadata12,
6078
+ returnWithRefund
6079
+ );
5896
6080
  registerTool(server, schema13, metadata13, addCartItem);
5897
- registerTool(server, schema14, metadata14, updateCartItem);
5898
- registerTool(server, schema15, metadata15, removeCartItem);
5899
- registerTool(server, schema16, metadata16, applyDiscount);
5900
- registerTool(server, schema17, metadata17, removeDiscount);
6081
+ registerTool(
6082
+ server,
6083
+ schema14,
6084
+ metadata14,
6085
+ updateCartItem
6086
+ );
6087
+ registerTool(
6088
+ server,
6089
+ schema15,
6090
+ metadata15,
6091
+ removeCartItem
6092
+ );
6093
+ registerTool(
6094
+ server,
6095
+ schema16,
6096
+ metadata16,
6097
+ applyDiscount
6098
+ );
6099
+ registerTool(
6100
+ server,
6101
+ schema17,
6102
+ metadata17,
6103
+ removeDiscount
6104
+ );
5901
6105
  registerTool(server, schema18, metadata18, clearCart);
5902
- registerTool(server, schema19, metadata19, validateDiscount);
5903
- registerTool(server, schema20, metadata20, calculateShipping);
6106
+ registerTool(
6107
+ server,
6108
+ schema19,
6109
+ metadata19,
6110
+ validateDiscount
6111
+ );
6112
+ registerTool(
6113
+ server,
6114
+ schema20,
6115
+ metadata20,
6116
+ calculateShipping
6117
+ );
5904
6118
  registerTool(server, schema21, metadata21, stockCheck);
5905
6119
  }
5906
- registerTool(server, schema22, metadata22, getCollectionSchemaTool);
5907
- registerTool(server, schema23, metadata23, handler);
5908
- registerTool(server, schema24, metadata24, listConfigurableFields);
5909
- registerTool(server, schema25, metadata25, updateFieldConfig);
5910
- registerTool(server, schema26, metadata26, handler2);
5911
- registerTool(server, schema27, metadata27, handler3);
5912
- registerTool(server, schema28, metadata28, handler4);
5913
- registerTool(server, schema29, metadata29, handler5);
5914
- registerPrompt(server, schema30, metadata30, sdkUsageGuide);
5915
- registerPrompt(server, schema31, metadata31, collectionQueryHelp);
5916
- registerPrompt(server, schema32, metadata32, orderFlowGuide);
5917
- registerPrompt(server, schema33, metadata33, featureSetupGuide);
5918
- registerStaticResource(server, "config://app", metadata34, handler6);
5919
- registerStaticResource(server, "collections://schema", metadata35, handler7);
5920
- registerStaticResource(server, "docs://sdk/getting-started", metadata36, handler8);
5921
- registerStaticResource(server, "docs://sdk/guides", metadata37, handler9);
5922
- registerStaticResource(server, "docs://sdk/api", metadata38, handler10);
5923
- registerStaticResource(server, "docs://sdk/query-builder", metadata39, handler11);
5924
- registerStaticResource(server, "docs://sdk/react-query", metadata40, handler12);
5925
- registerStaticResource(server, "docs://sdk/server-api", metadata41, handler13);
5926
- registerStaticResource(server, "docs://sdk/customer-auth", metadata42, handler14);
5927
- registerStaticResource(server, "docs://sdk/browser-vs-server", metadata43, handler15);
5928
- registerStaticResource(server, "docs://sdk/file-upload", metadata44, handler16);
5929
- registerStaticResource(server, "docs://sdk/webhook", metadata45, handler17);
6120
+ registerTool(
6121
+ server,
6122
+ schema22,
6123
+ metadata22,
6124
+ getCollectionSchemaTool
6125
+ );
6126
+ registerTool(
6127
+ server,
6128
+ schema23,
6129
+ metadata23,
6130
+ handler
6131
+ );
6132
+ registerTool(
6133
+ server,
6134
+ schema24,
6135
+ metadata24,
6136
+ handler2
6137
+ );
6138
+ registerTool(
6139
+ server,
6140
+ schema25,
6141
+ metadata25,
6142
+ listConfigurableFields
6143
+ );
6144
+ registerTool(
6145
+ server,
6146
+ schema26,
6147
+ metadata26,
6148
+ updateFieldConfig
6149
+ );
6150
+ registerTool(
6151
+ server,
6152
+ schema27,
6153
+ metadata27,
6154
+ handler3
6155
+ );
6156
+ registerTool(
6157
+ server,
6158
+ schema28,
6159
+ metadata28,
6160
+ handler4
6161
+ );
6162
+ registerTool(
6163
+ server,
6164
+ schema29,
6165
+ metadata29,
6166
+ handler5
6167
+ );
6168
+ registerTool(
6169
+ server,
6170
+ schema30,
6171
+ metadata30,
6172
+ handler6
6173
+ );
6174
+ registerPrompt(
6175
+ server,
6176
+ schema31,
6177
+ metadata31,
6178
+ sdkUsageGuide
6179
+ );
6180
+ registerPrompt(
6181
+ server,
6182
+ schema32,
6183
+ metadata32,
6184
+ collectionQueryHelp
6185
+ );
6186
+ registerPrompt(
6187
+ server,
6188
+ schema33,
6189
+ metadata33,
6190
+ orderFlowGuide
6191
+ );
6192
+ registerPrompt(
6193
+ server,
6194
+ schema34,
6195
+ metadata34,
6196
+ featureSetupGuide
6197
+ );
6198
+ registerStaticResource(
6199
+ server,
6200
+ "config://app",
6201
+ metadata35,
6202
+ handler7
6203
+ );
6204
+ registerStaticResource(
6205
+ server,
6206
+ "collections://schema",
6207
+ metadata36,
6208
+ handler8
6209
+ );
6210
+ registerStaticResource(
6211
+ server,
6212
+ "docs://sdk/getting-started",
6213
+ metadata37,
6214
+ handler9
6215
+ );
6216
+ registerStaticResource(server, "docs://sdk/guides", metadata38, handler10);
6217
+ registerStaticResource(server, "docs://sdk/api", metadata39, handler11);
6218
+ registerStaticResource(
6219
+ server,
6220
+ "docs://sdk/query-builder",
6221
+ metadata40,
6222
+ handler12
6223
+ );
6224
+ registerStaticResource(
6225
+ server,
6226
+ "docs://sdk/react-query",
6227
+ metadata41,
6228
+ handler13
6229
+ );
6230
+ registerStaticResource(
6231
+ server,
6232
+ "docs://sdk/server-api",
6233
+ metadata42,
6234
+ handler14
6235
+ );
6236
+ registerStaticResource(
6237
+ server,
6238
+ "docs://sdk/customer-auth",
6239
+ metadata43,
6240
+ handler15
6241
+ );
6242
+ registerStaticResource(
6243
+ server,
6244
+ "docs://sdk/browser-vs-server",
6245
+ metadata44,
6246
+ handler16
6247
+ );
6248
+ registerStaticResource(
6249
+ server,
6250
+ "docs://sdk/file-upload",
6251
+ metadata45,
6252
+ handler17
6253
+ );
6254
+ registerStaticResource(
6255
+ server,
6256
+ "docs://sdk/webhook",
6257
+ metadata46,
6258
+ handler18
6259
+ );
5930
6260
  return server;
5931
6261
  }
5932
6262
 
@@ -5944,4 +6274,4 @@ export {
5944
6274
  flushMcpTelemetrySummary,
5945
6275
  createServer
5946
6276
  };
5947
- //# sourceMappingURL=chunk-CADO6WG6.js.map
6277
+ //# sourceMappingURL=chunk-2ECTVUKU.js.map