@stackone/cli 1.10.0 → 1.11.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/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- const e=require(`./cliCore-D3gL-zoM.cjs`);exports.CLI=e.CLI;
1
+ const e=require(`./cliCore-CXBqMdiv.cjs`);exports.CLI=e.CLI;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{CLI as e}from"./cliCore-Bx4ZPYGH.js";export{e as CLI};
1
+ import{CLI as e}from"./cliCore-DRnQtnk3.js";export{e as CLI};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackone/cli",
3
- "version": "1.10.0",
3
+ "version": "1.11.0",
4
4
  "description": "StackOne Connect CLI tool",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,7 +11,6 @@
11
11
  },
12
12
  "files": [
13
13
  "dist",
14
- "CLAUDE_TEMPLATE.md",
15
14
  "package.json",
16
15
  "README.md"
17
16
  ],
@@ -43,6 +42,7 @@
43
42
  "author": "StackOne",
44
43
  "license": "ISC",
45
44
  "dependencies": {
45
+ "@stackone/agent-config": "^1.2.0",
46
46
  "@stackone/connect-sdk": "*",
47
47
  "@stackone/core": "*",
48
48
  "@stackone/transport": "*",
@@ -1,634 +0,0 @@
1
- # 🚀 FALCON API CONFIG BUILDER
2
-
3
- This document provides the complete methodology for building Falcon API configurations with Claude. Follow this strict workflow to ensure comprehensive, tested, and customer-valuable integrations.
4
-
5
- ## 🔴 CRITICAL WORKFLOW (STRICT ORDER)
6
-
7
- When asked to build Falcon API configurations, you MUST follow this exact sequence:
8
-
9
- 1. **Research Phase (PARALLEL EXECUTION)** → Launch `discover_actions` subagent for action discovery + main agent for auth/docs/external repos
10
- 2. **Synchronization** → Collect and integrate subagent results
11
- 3. **Version Validation** → `analyze_versioning()` → Detect and resolve API version conflicts for discovered endpoints
12
- 4. **Config Building** → Create comprehensive configuration with all discovered actions
13
- 5. **YAML Validation** → `stackone validate src/configs/<provider>.yaml` → Ensure valid YAML syntax
14
- 6. **Coverage Validation** → `check_all_endpoints()` → Confirm endpoint coverage ≥80%
15
- 7. **Testing Phase** → `run_connector_action()` → Test EVERY action with real API calls
16
- 8. **Test Completion** → `check_test_completion()` → Verify 100% actions tested
17
- 9. **Security** → `scramble_credentials()` → Secure all sensitive data before storage
18
- 10. **Meta Feedback** → `meta_feedback()` → **MANDATORY** - Send feedback to third-party system for tracking
19
-
20
- **❌ Skip/Disorder = Incomplete Task / Professional Failure**
21
-
22
- ## 🎯 CORE PRINCIPLES
23
-
24
- - **MAXIMUM COVERAGE**: Discover and include ALL useful actions that provide customer value
25
- - **ACTION-FOCUSED**: Think: "what actions would developers commonly perform with this provider?"
26
- - **CUSTOMER VALUE**: Prioritize actions that solve real business problems
27
- - **MORE IS BETTER**: Default to comprehensiveness over minimalism
28
- - **PRACTICAL UTILITY**: Focus on actions developers actually use in production
29
-
30
- ## 📚 PREREQUISITE DOCUMENTATION
31
-
32
- **Before starting, read these files for complete setup and reference information:**
33
-
34
- 1. **YAML Structure & Connector Building**: Read `src/configs/README.md`
35
-
36
- - Complete YAML structure documentation
37
- - Authentication patterns (OAuth, API Key, Custom)
38
- - Operations structure and step functions
39
- - Field configs and type mappings
40
-
41
- 2. **Contribution Guidelines**: Read `README.md`
42
- - Git branching strategy and commit format
43
- - Git hooks and automated workflows
44
-
45
- ## 🔍 RESEARCH PHASE
46
-
47
- ### 🚀 Action Discovery Strategy
48
-
49
- **First, check if provider actions exist in S3:**
50
-
51
- ```
52
- 1. map_provider_key("provider_name") → Get exact provider key
53
- 2. get_provider_actions("provider_key") → Check S3 for existing indexed data
54
- ```
55
-
56
- **If comprehensive data returned** → Use it immediately, proceed to Authentication Research
57
-
58
- **If NO data or suggestion to use discover_actions** → Launch autonomous subagent for deep research:
59
-
60
- ```typescript
61
- // Launch the discover_actions subagent
62
- discover_actions({
63
- provider: "provider_name",
64
- maxIterations: 30
65
- })
66
- → Returns taskId immediately (< 1 second)
67
- → Agent works autonomously in background (5-15 minutes)
68
- → Performs 20+ tool calls for comprehensive research
69
- → Auto-saves results to S3 when complete
70
- ```
71
-
72
- **Important:** The `get_provider_actions()` tool does NOT perform web searches. It only:
73
-
74
- - Returns indexed S3 data if available
75
- - Suggests using `discover_actions` subagent if no data exists
76
- - Provides workflow instructions for autonomous discovery
77
-
78
- ### 🚀 Parallel Execution Strategy
79
-
80
- **Launch discover_actions early, continue with other research:**
81
-
82
- 1. **Minute 0:** Launch `discover_actions(provider)` → Get taskId
83
- 2. **Minutes 0-5:** Complete Steps 0-4 (reference connectors, StackOne context, auth, docs, external repos)
84
- 3. **Minutes 5-15:** Poll `get_discover_actions_task_status(taskId, provider)` every 60-90 seconds
85
- 4. **Minute 15:** Synchronize and integrate all research results
86
- 5. **Minute 15-20:** Run `analyze_versioning()` for version validation (NEW STEP)
87
- 6. **Begin config building with complete action inventory**
88
-
89
- This parallel approach maximizes efficiency and minimizes wait time.
90
-
91
- ### Step 0: Use Existing Connectors as Reference
92
-
93
- **Before starting, read a similar existing connector in `src/configs/` (same category or auth type) to understand the correct YAML structure, required fields, and file organization.**
94
-
95
- ### Step 1: StackOne Context
96
-
97
- ```
98
- 1. get_stackone_categories() → Get available categories (hris, ats, crm, etc.)
99
- 2. get_stackone_actions(category) → Get unified actions for the category
100
- ```
101
-
102
- ### Step 2: Provider Action Discovery (Autonomous Subagent)
103
-
104
- **Use the discover_actions subagent for comprehensive, autonomous provider research:**
105
-
106
- ```typescript
107
- // Step 1: Launch autonomous discovery
108
- discover_actions({
109
- provider: "provider_name",
110
- maxIterations: 30
111
- })
112
- → Returns: { taskId: "rpc_xxx", provider: "provider_name", message: "..." }
113
- → Agent queues immediately and works in background
114
-
115
- // Step 2: Poll for progress (every 60-90 seconds)
116
- get_discover_actions_task_status({
117
- taskId: "rpc_xxx",
118
- provider: "provider_name"
119
- })
120
- → Status progression: "pending" → "running" → "complete"
121
- → While running, shows: iteration: X/30
122
-
123
- // Step 3: Extract results when complete (after 5-15 minutes)
124
- get_discover_actions_task_status({
125
- taskId: "rpc_xxx",
126
- provider: "provider_name"
127
- })
128
- → Status: "complete"
129
- → Result: JSON report with ~100 discovered actions
130
- → Actions include: name, description, use_case, endpoints, prerequisites
131
- ```
132
-
133
- **Key Benefits:**
134
-
135
- - **Autonomous**: Agent makes 20+ tool calls without intervention
136
- - **Comprehensive**: Exhaustive research across all API documentation
137
- - **Persistent**: Results auto-saved to S3 for future use
138
- - **Async**: Returns immediately, works in background (5-15 minutes)
139
- - **No manual iteration needed**: Single call replaces multiple manual iterations
140
-
141
- **Old manual approach (NO LONGER USED):**
142
-
143
- ```
144
- ❌ get_provider_actions("provider", focus="category") - DEPRECATED (removed from code)
145
- ❌ get_provider_actions("provider", focus="category", previousActions=[...]) - DEPRECATED
146
- ❌ Manual iterative discovery with focus/previousActions parameters - REMOVED
147
- ```
148
-
149
- ### Step 3: Authentication Research
150
-
151
- ```
152
- 1. vector_search("authentication", provider, 5) → Provider auth methods
153
- 2. get_templates("auth_type") → Get Falcon auth templates
154
- 3. summarised_search("provider authentication API") → Additional auth details
155
- ```
156
-
157
- ### Step 4: Documentation & Coverage
158
-
159
- ```
160
- 1. get_provider_coverage(provider) → Current StackOne coverage
161
- 2. fetch() → Get OpenAPI specs, documentation URLs
162
- 3. extract_oas_operations() → Parse large OpenAPI specifications
163
- ```
164
-
165
- ### Step 5: External Repository Analysis (MANDATORY)
166
-
167
- ```
168
- 1. get_external_integrations(provider) → Find list of external integrations
169
- 2. analyze_external_integration(externalIntegration, provider) → Deep dive on specific external integration
170
- 3. analyze_external_integrations(externalIntegrations, provider) → Batch analysis of multiple external integrations
171
- 4. get_external_repos() → Get curated open-source integration examples
172
- 5. scan_external_repo(repo_url, search_terms) → Deep repository search
173
- 6. search_external_repo(repo_url, description) → Research external integration implementation details
174
- ```
175
-
176
- ### Step 6: Synchronize Subagent Results
177
-
178
- **Collect results from the discover_actions subagent:**
179
-
180
- 1. **Check final status:**
181
-
182
- ```typescript
183
- get_discover_actions_task_status({
184
- taskId: "rpc_xxx",
185
- provider: "provider_name"
186
- })
187
- → status: "complete"
188
- ```
189
-
190
- 2. **Extract the result field:**
191
-
192
- - Contains comprehensive JSON report
193
- - ~100 discovered actions with metadata
194
- - Actions include: name, description, use_case, endpoints, prerequisites
195
- - Results are automatically indexed to S3
196
-
197
- 3. **Integration checklist:**
198
- - [ ] Status is "complete" (not "pending" or "running")
199
- - [ ] Result field contains JSON action report
200
- - [ ] Actions parsed and organized by category
201
- - [ ] Cross-referenced with StackOne operations
202
- - [ ] Identified provider-specific capabilities
203
- - [ ] Ready for version validation and YAML mapping
204
-
205
- **Note:** The discover_actions subagent automatically saves results to S3, so future calls to `get_provider_actions(provider)` will return the indexed data immediately.
206
-
207
- ## 🔄 VERSION VALIDATION (NEW STEP)
208
-
209
- ### API Versioning Agent
210
-
211
- **IMPORTANT**: After action discovery completes, validate API versions for discovered endpoints.
212
-
213
- **When to use:**
214
-
215
- - After `discover_actions` completes and returns endpoints
216
- - Before building YAML configurations
217
- - When encountering version-related errors during testing
218
-
219
- **Workflow:**
220
-
221
- ```typescript
222
- // Step 1: Extract endpoints from discovered actions
223
- const discoveredEndpoints = discoveredActions.map(action => action.endpoints[0]);
224
- // Example: ["/api/v2/users", "/api/v2/departments", "/api/v3/tickets"]
225
-
226
- // Step 2: Launch versioning analysis (2-5 minutes)
227
- analyze_versioning({
228
- provider: "provider_name",
229
- endpoints: discoveredEndpoints, // Pass discovered endpoints
230
- maxIterations: 5
231
- })
232
- → Returns: { taskId: "rpc_xxx", provider: "provider_name", message: "..." }
233
-
234
- // Step 3: Poll for status (every 30-60 seconds)
235
- get_analyze_versioning_task_status({
236
- taskId: "rpc_xxx",
237
- provider: "provider_name"
238
- })
239
- → Status: "running", iteration: 2/5
240
-
241
- // Step 4: Extract results when complete
242
- get_analyze_versioning_task_status({
243
- taskId: "rpc_xxx",
244
- provider: "provider_name"
245
- })
246
- → Status: "complete"
247
- → Result: JSON version analysis report
248
- ```
249
-
250
- **What you get:**
251
-
252
- ```json
253
- {
254
- "available_versions": ["v1", "v2", "v3"],
255
- "recommended_version": "v3",
256
- "endpoint_mapping": [
257
- {
258
- "endpoint": "/api/v2/departments",
259
- "version": "v2",
260
- "status": "deprecated",
261
- "v3_equivalent": "/api/v3/organizational-units",
262
- "breaking_changes": ["Endpoint renamed", "Different data structure"],
263
- "recommendation": "Migrate to v3 /organizational-units endpoint"
264
- }
265
- ],
266
- "conflicts_detected": [
267
- {
268
- "issue": "v2 /departments endpoint not available in v3",
269
- "severity": "high",
270
- "resolution": "Use v3 /organizational-units endpoint instead"
271
- }
272
- ],
273
- "migration_guide": {
274
- "v2_to_v3": {
275
- "breaking_changes": ["Endpoint renames", "Schema changes"],
276
- "migration_steps": [...]
277
- }
278
- }
279
- }
280
- ```
281
-
282
- **Benefits:**
283
-
284
- - **Conflict Detection**: Identifies version mismatches and breaking changes
285
- - **Migration Guidance**: Provides version-specific migration paths
286
- - **Endpoint Validation**: Confirms which version each endpoint belongs to
287
- - **Focused Analysis**: Only 2-5 minutes using vector_search + summarised_search
288
- - **Prevention**: Catches versioning issues before config building
289
-
290
- **Version Validation Checklist:**
291
-
292
- - [ ] Discovered actions extracted from action discovery results
293
- - [ ] Endpoints passed to `analyze_versioning()`
294
- - [ ] Version analysis complete with recommendations
295
- - [ ] Breaking changes and conflicts reviewed
296
- - [ ] Recommended version identified for each endpoint
297
- - [ ] Migration steps documented for deprecated endpoints
298
- - [ ] Ready to build config with version-validated endpoints
299
-
300
- ## ⚙️ CONFIG BUILDING
301
-
302
- ### CLI Setup (If Not Already Installed)
303
-
304
- Before building configs, ensure the StackOne CLI is available:
305
-
306
- ```bash
307
- # Check if CLI is installed
308
- which stackone
309
-
310
- # If not installed, install it:
311
- npm install -g @stackone/cli
312
- # OR locally in the project:
313
- npm install @stackone/cli
314
- ```
315
-
316
- ### File Location
317
-
318
- **All Falcon configurations must be saved in provider-specific folders within `src/configs/` directory.**
319
-
320
- Use the following naming convention and structure:
321
-
322
- - Create a provider folder: `src/configs/provider-name/` (e.g., `src/configs/slack/`)
323
- - Name the config file: `provider.connector.s1.yaml` (e.g., `slack.connector.s1.yaml`)
324
- - Full path example: `src/configs/slack/slack.connector.s1.yaml`
325
- - Use lowercase for provider names
326
-
327
- ### Template Structure
328
-
329
- **For complete YAML structure, syntax, and detailed examples, see [`src/configs/README.md`](src/configs/README.md).**
330
-
331
- Key sections your configuration must include:
332
-
333
- 1. **Meta Info** (`info`, `baseUrl`, `rateLimit`) - Provider identification and API endpoint
334
- 2. **Authentication** - OAuth2, API Key, Basic, or Custom auth (defined ONCE at top level)
335
- 3. **Context** (optional) - Documentation URLs for the connector and operations
336
- 4. **Actions** - All discovered actions mapped to StackOne actions
337
- - Each action includes: `steps`, `fieldConfigs`, `inputs`, `result`
338
- - See README.md for step functions: `request`, `paginated_request`, `map_fields`, `typecast`, etc.
339
-
340
- **Quick Reference:**
341
-
342
- - Authentication patterns: See [README.md - Authentication](src/configs/README.md#authentication)
343
- - Actions structure: See [README.md - Actions](src/configs/README.md#actions)
344
- - Field configs & mappings: See [README.md - Field Configs](src/configs/README.md#field-configs)
345
- - Step functions: See [README.md - Step Functions](src/configs/README.md#step-functions)
346
- - Dynamic values & expressions: See [README.md - Dynamic Values](src/configs/README.md#dynamic-values)
347
-
348
- ### Configuration Requirements
349
-
350
- - **Action Coverage**: Map ALL actions discovered through `discover_actions` subagent
351
- - **Version-Validated Endpoints**: Use version analysis results to ensure correct endpoints
352
- - **StackOne Operations**: Include all relevant operations from `get_stackone_actions()`
353
- - **Comprehensive CRUD**: Where applicable, include create, read, update, delete operations
354
- - **Error Handling**: Include comprehensive error handling and rate limiting
355
- - **Context Documentation**: Add context documentation with live URLs only
356
- - **Credential Templating**: Use proper credential templating: `${credentials.field}`
357
-
358
- ### Descriptions (MANDATORY)
359
-
360
- - Write clear, concise, high-quality descriptions for connector, actions, steps, and fields
361
- - Aim for 1-2 sentences that capture purpose, key behavior, and critical constraints
362
- - Include only essential technical details developers need to succeed
363
- - Keep wording consistent and avoid redundancy; prefer active voice
364
- - When in doubt, or to quickly improve WIP connectors, run the `improve-descriptions` subagent
365
- - Command: `improve-descriptions <provider_name>`
366
- - Operates only on work-in-progress connectors (not yet merged to main)
367
-
368
- ### YAML Validation (MANDATORY)
369
-
370
- After creating the configuration file, validate it using the StackOne CLI:
371
-
372
- ```bash
373
- stackone validate src/configs/<provider>/<provider>.connector.s1.yaml
374
- ```
375
-
376
- **IMPORTANT**: The config MUST pass validation before proceeding to testing. Fix any syntax errors or structural issues identified by the validator.
377
-
378
- **For detailed validation instructions, debugging tips, and feature flag setup**, see:
379
-
380
- - **[README.md - Validation](src/configs/README.md#validation)** - Detailed validation process and debugging
381
- - **[DEVELOPERS.md](src/configs/DEVELOPERS.md)** - Environment setup and troubleshooting
382
-
383
- ## 🧪 TESTING PHASE (MANDATORY)
384
-
385
- ### Testing Approach Options
386
-
387
- **Option 1: MINIMAL CONFIG (RECOMMENDED)**
388
-
389
- - Test individual operations with minimal YAML (header + single action)
390
- - Avoids YAML syntax errors from incomplete configurations
391
- - Faster iteration during development
392
- - Clear error messages for individual operations
393
- - Example: Include only `info`, `baseUrl`, `authentication`, and one operation
394
- - See [README.md](src/configs/README.md) for complete YAML structure and syntax
395
-
396
- **Option 2: FULL CONFIG**
397
-
398
- - Test complete connector configurations
399
- - Use when you have a complete, validated YAML structure
400
- - Useful for integration testing across multiple actions
401
-
402
- ### Testing Execution
403
-
404
- 1. Prepare test credentials object
405
- 2. Test EACH action using `run_connector_action()`
406
- - connector: YAML configuration
407
- - account: credentials + environment details
408
- - category: StackOne category
409
- - path: action identifier
410
- - method: HTTP method
411
- 3. Track testing progress
412
- 4. Validate coverage
413
-
414
- **No Connect SDK testing = worthless config.**
415
-
416
- ## 📊 VALIDATION & COMPLETION
417
-
418
- ### Coverage Validation
419
-
420
- ```
421
- check_all_endpoints(discoveredActions, stackOneOperations, config)
422
- → Must achieve ≥80% coverage of discovered actions before testing
423
- ```
424
-
425
- ### Test Completion
426
-
427
- ```
428
- check_test_completion(allOperations, testedOperations)
429
- → Must achieve 100% before task completion
430
- ```
431
-
432
- ### Success Criteria
433
-
434
- - [ ] All useful actions discovered via `discover_actions` subagent (autonomous research)
435
- - [ ] StackOne operations catalogued via `get_stackone_actions()`
436
- - [ ] External repos analyzed (≥2-3)
437
- - [ ] **API versions validated via `analyze_versioning()` subagent**
438
- - [ ] All discovered actions mapped to operations with correct versions
439
- - [ ] Context docs with live links
440
- - [ ] Every action tested with `run_connector_action()`
441
- - [ ] Coverage ≥80% via `check_all_endpoints()`
442
- - [ ] 100% test completion via `check_test_completion()`
443
- - [ ] Credentials scrambled before storage
444
- - [ ] **Meta feedback sent via `meta_feedback()` - MANDATORY**
445
-
446
- ## 🔒 SECURITY (MANDATORY BEFORE STORAGE)
447
-
448
- ### Security Workflow
449
-
450
- ```javascript
451
- // Step 1: After successful testing, scramble before storage
452
- scramble_credentials({
453
- config: validatedConfigJson,
454
- credentials: testCredentialsJson,
455
- securityLevel: "PRODUCTION", // Use PRODUCTION for live configs
456
- });
457
-
458
- // Step 2: Save ONLY the scrambled versions
459
- // - config: save result.scrambledConfig
460
- // - credentials: save result.scrambledCredentials
461
- // - metadata: save result.detectedFields & warnings
462
- ```
463
-
464
- ### Security Validation Checklist
465
-
466
- - [ ] **All credential patterns detected**: Check result.detectedFields length
467
- - [ ] **No warnings about missed fields**: Address result.warnings
468
- - [ ] **Appropriate security level chosen**: PRODUCTION for live, DEBUG for dev
469
- - [ ] **Custom patterns added if needed**: Provider-specific credential formats
470
- - [ ] **Scrambled output verified**: Ensure no plaintext credentials remain
471
- - [ ] **Original configs deleted**: Remove unscrambled versions after scrambling
472
-
473
- ### ⚠️ Security Anti-Patterns (NEVER DO THESE)
474
-
475
- ❌ Committing unscrambled configs to git
476
- ❌ Sharing configs with real credentials in Slack/docs
477
- ❌ Storing credentials in plain text files
478
- ❌ Skipping scrambling "just for testing"
479
- ❌ Using DEBUG preset in production environments
480
- ❌ Ignoring warnings about undetected secret fields
481
-
482
- ## 📊 META FEEDBACK (MANDATORY)
483
-
484
- ### Meta Feedback Workflow
485
-
486
- **CRITICAL**: The `meta_feedback()` tool MUST be called after every config generation completion, regardless of user preference or request. This is non-negotiable for tracking and quality improvement.
487
-
488
- **Required Feedback Format:**
489
-
490
- ```
491
- Provider: [provider_name]
492
- Status: [completed/failed/partial]
493
-
494
- STRENGTHS:
495
- - [What worked well]
496
-
497
- IMPROVEMENTS NEEDED:
498
- - [Issues that need fixing]
499
- ```
500
-
501
- ### Meta Feedback Requirements
502
-
503
- - [ ] **Always call `meta_feedback()`** - No exceptions
504
- - [ ] **Include both positive and negative feedback** - What worked AND what didn't
505
-
506
- ### ⚠️ Meta Feedback Anti-Patterns (NEVER DO THESE)
507
-
508
- ❌ Skipping meta_feedback because user didn't ask for it
509
- ❌ Only reporting positive feedback without identifying issues
510
-
511
- ## 🛠️ Available Tools
512
-
513
- ### Core Research Tools
514
-
515
- - `get_stackone_categories()` - Get StackOne API categories
516
- - `get_stackone_actions(category)` - Get operations for category
517
- - `get_docs()` - Fetch StackOne docs index with title:url dictionary
518
- - `map_provider_key(provider)` - Find correct provider key with fuzzy matching
519
- - `get_providers()` - List all available providers from S3 config
520
- - `get_provider_coverage(provider)` - Current StackOne coverage for provider
521
-
522
- ### Action Discovery (Primary)
523
-
524
- - `discover_actions(provider, apiVersion?, maxIterations?)` - **PRIMARY DISCOVERY TOOL** - Autonomous AI agent for comprehensive API research (5-15 minutes)
525
- - `get_discover_actions_task_status(taskId, provider)` - Poll status and retrieve results from discover_actions
526
- - `get_provider_actions(provider, focus?, previousActions?)` - Check S3 for indexed actions or fallback to Parallel AI
527
-
528
- ### API Versioning (New)
529
-
530
- - `analyze_versioning(provider, endpoints?, maxIterations?)` - **VERSION VALIDATION TOOL** - Autonomous agent for detecting API version conflicts (2-5 minutes)
531
- - `get_analyze_versioning_task_status(taskId, provider)` - Poll status and retrieve results from analyze_versioning
532
-
533
- ### Web Search Tools
534
-
535
- - `summarised_search(query)` - Web search via Perplexity AI with natural language summaries
536
- - `concise_search(query)` - Structured web search via Parallel AI with JSON results
537
- - `vector_search(query, provider, k)` - Semantic search across StackOne knowledge base
538
- - `fetch(url, headers?, extractText?)` - Get content from URLs with optional text extraction
539
- - `extract_html_text(html)` - Extract plain text from HTML content
540
-
541
- ### External Repository Analysis
542
-
543
- - `get_external_integrations(provider, count?)` - Find list of external integrations (default 10)
544
- - `analyze_external_integration(externalIntegration, provider)` - Deep dive on specific external integration implementation
545
- - `analyze_external_integrations(externalIntegrations, provider)` - Batch analysis of multiple external integrations
546
- - `get_external_repos()` - Get curated list of open-source integration examples
547
- - `scan_external_repo(repo_url, search_terms, options?)` - Deep repository search with pagination
548
- - `search_external_repo(repo_url, description)` - Research external integration technical implementation details
549
-
550
- ### Configuration & Templates
551
-
552
- - `get_templates(auth_type, auth_only?)` - Get Falcon auth templates (OAuth2, API Key, Basic, Custom)
553
- - `get_stackone_expressions()` - Pull full expressions package for formatting help
554
- - `extract_oas_operations(oasContent, hasBeenTruncated, passNumber)` - Parse large OpenAPI specs with truncation support
555
-
556
- ### Testing & Validation
557
-
558
- - `run_connector_operation(connector, account, category, path, method, ...)` - Execute real API calls with minimal or full configs
559
- - `check_all_endpoints(unifiedEndpoints, nonUnifiedEndpoints, config)` - **MANDATORY** - Validate endpoint coverage ≥80%
560
- - `check_test_completion(allOperations, testedOperations)` - **MANDATORY** - Verify 100% actions tested
561
-
562
- ### Description Improvement
563
-
564
- - `improve_descriptions(config, maxIterations?)` - Async tool to improve YAML descriptions (2-5 minutes)
565
- - `get_improve_descriptions_task_status(taskId, provider)` - Poll status and retrieve improved YAML
566
-
567
- ### Security (MANDATORY)
568
-
569
- - `scramble_credentials(config?, credentials?, securityLevel, customPatterns?)` - **REQUIRED** - Secure credential scrambling before storage
570
- - Security levels: DEBUG, DEVELOPMENT, PRODUCTION, BALANCED
571
- - Detects API keys, tokens, passwords, secrets, URL-embedded auth
572
- - Must be called before ANY storage operation
573
-
574
- ### Meta Feedback (MANDATORY)
575
-
576
- - `meta_feedback(feedback, tool_names)` - **REQUIRED** - Send harsh, critical feedback to LangSmith for tracking. Must be called after every config generation completion, regardless of user preference.
577
-
578
- **Expected Output:**
579
-
580
- ```json
581
- {
582
- "message": "Feedback sent to 1 account(s)",
583
- "total_accounts": 1,
584
- "successful": 1,
585
- "failed": 0,
586
- "results": [
587
- {
588
- "account_id": "acc1",
589
- "status": "success",
590
- "result": {
591
- "success": true,
592
- "feedback_id": "ed589941-dacc-416d-81e0-6012490c973e"
593
- }
594
- }
595
- ]
596
- }
597
- ```
598
-
599
- ## 💡 SUCCESS CRITERIA
600
-
601
- A successful Falcon configuration delivers:
602
-
603
- - **Comprehensive Action Coverage**: All useful actions developers need in production
604
- - **Version-Validated Endpoints**: Correct API versions for all endpoints, with conflict resolution
605
- - **Validated Functionality**: Every action tested with real API calls
606
- - **Real-World Focus**: Operations that solve actual business problems
607
- - **Market Insight**: Features that differentiate StackOne from external integrations
608
- - **Future-Proof**: Built for extensibility and maintenance
609
- - **Secure**: All credentials properly secured before storage
610
- - **Documented**: Clear sources and context for all implementations
611
-
612
- Remember: **Autonomous Discovery + Version Validation + Maximum coverage + Real testing + Security = Customer value**
613
-
614
- ---
615
-
616
- # 🔄 Converting TypeScript Connectors to YAML
617
-
618
- For detailed instructions on converting existing TypeScript-based connectors from the `unified-cloud-api` repository to YAML-based Falcon configurations, see **[YAMLCONVERSION.md](src/configs/YAMLCONVERSION.md)**.
619
-
620
- This guide covers:
621
-
622
- - Authentication conversion patterns (OAuth2, API Key, Basic, Custom)
623
- - Resource action conversion (list, get, create, update, delete)
624
- - Field type mappings and enum handling
625
- - Expression syntax (JSONPath, JEXL, String Interpolation)
626
- - PreResolvers to sequential steps conversion
627
- - Data mapping pipeline (request → map_fields → typecast)
628
- - Common pitfalls and validation errors
629
- - Complete examples and best practices
630
-
631
- ---
632
-
633
- *Authenticated with StackOne • Falcon MCP Server*
634
- *For full workflow details, see the complete CLAUDE.md in repository*
File without changes