newo 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,429 +2,389 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [3.0.0] - 2025-01-30
9
-
10
- ### 🏗️ MAJOR FEATURE: Complete Entity Management System
11
-
12
- **Local-First Development Workflow:**
13
- - Create entities locally with full metadata
14
- - Edit in your preferred IDE with proper file extensions
15
- - Push to platform when ready - automatic detection and creation
16
- - Full lifecycle management for all NEWO entities
17
-
18
- ### New Entity Creation Commands (12 commands)
19
-
20
- **Project & Infrastructure:**
21
- - `newo create-project <idn>` - Create new projects on platform
22
- - `newo create-persona <name>` - Create agent personas
23
- - `newo create-attribute <idn>` - Create customer attributes
24
-
25
- **Agent Structure:**
26
- - `newo create-agent <idn> --project <pid>` - Create agents locally with metadata
27
- - `newo create-flow <idn> --agent <aid>` - Create flows with guidance/NSL runner selection
28
- - `newo create-skill <idn> --flow <fid>` - Create skills with script content initialization
29
-
30
- **NSL Components:**
31
- - `newo create-event <idn> --flow <fid>` - Create flow events for integrations
32
- - `newo create-state <idn> --flow <fid>` - Create flow state fields (user/flow/global scope)
33
- - `newo create-parameter <name> --skill <sid>` - Create skill parameters
34
-
35
- ### 🗑️ New Entity Deletion Commands (3 commands)
36
-
37
- **Safe Deletion with Confirmation:**
38
- - `newo delete-agent <aid> --confirm` - Delete agent locally (requires --confirm flag)
39
- - `newo delete-flow <fid> --confirm` - Delete flow locally (requires --confirm flag)
40
- - `newo delete-skill <sid> --confirm` - Delete skill locally (requires --confirm flag)
41
-
42
- **Push-to-Sync:** Run `newo push` after deletion to sync changes to platform
43
-
44
- ### 🔄 Enhanced Push Operation
45
-
46
- **Automatic Local-Only Entity Detection:**
47
- - Filesystem scanning for entities not yet in project map
48
- - Automatic detection of new agents, flows, and skills
49
- - Creates missing entities on platform in correct hierarchical order
50
- - Publishes flows after creation
51
- - Maintains proper agent flow skill relationships
52
- - Updates existing skills with changes
53
-
54
- ### 📊 Enhanced Status Command
55
-
56
- **Comprehensive Change Detection:**
57
- - Scans for local-only entities not yet on platform
58
- - Reports new agents/flows/skills awaiting sync
59
- - Shows full entity lifecycle status
60
- - Hierarchical display of project structure
61
-
62
- ### 🌐 New API Integrations (19 endpoints)
63
-
64
- **Entity Creation:**
65
- - `POST /api/v2/designer/{projectId}/agents` - Create agent
66
- - `POST /api/v1/designer/{agentId}/flows/empty` - Create flow
67
- - `POST /api/v1/designer/flows/{flowId}/skills` - Create skill
68
- - `POST /api/v1/designer/flows/{flowId}/events` - Create event
69
- - `POST /api/v1/designer/flows/{flowId}/states` - Create state
70
- - `POST /api/v1/designer/flows/skills/{skillId}/parameters` - Create parameter
71
- - `POST /api/v1/customer/attributes` - Create attribute
72
- - `POST /api/v1/designer/personas` - Create persona
73
- - `POST /api/v1/designer/projects` - Create project
74
- - `POST /api/v1/designer/flows/{flowId}/publish` - Publish flow
75
-
76
- **Entity Deletion:**
77
- - `DELETE /api/v1/designer/agents/{agentId}` - Delete agent
78
- - `DELETE /api/v1/designer/flows/{flowId}` - Delete flow
79
- - `DELETE /api/v1/designer/flows/skills/{skillId}` - Delete skill
80
- - `DELETE /api/v1/designer/flows/events/{eventId}` - Delete event
81
-
82
- ### 📚 Documentation Updates
83
-
84
- **README.md (+146 lines):**
85
- - New "Entity Management Commands" section with comprehensive command reference
86
- - "Entity Creation Workflows" section with end-to-end examples
87
- - Complete Weather System example demonstrating full lifecycle
88
- - Quick Agent Creation patterns
89
- - Local Development & Testing workflows
90
- - Entity Deletion procedures
91
- - Updated Key Features section highlighting entity management
92
- - Enhanced Quick Start with entity creation steps
93
- - Expanded API Reference with 19 new endpoints
94
-
95
- ### 🔧 Technical Improvements
96
-
97
- **TypeScript Enhancements:**
98
- - 19 new type definitions for entity creation/deletion requests and responses
99
- - Enhanced API client with new endpoint methods
100
- - Comprehensive error handling for entity operations
101
-
102
- **Architecture:**
103
- - 14 new command files in modular architecture (src/cli/commands/)
104
- - Enhanced push.ts with local-only entity scanning (~418 lines added)
105
- - Enhanced status.ts with entity detection (~184 lines added)
106
- - Type-safe entity creation with full metadata support
107
-
108
- ### 🎯 Use Cases Enabled
109
-
110
- **Complete Project Scaffolding:**
111
- - Bootstrap entire projects from CLI
112
- - Create full agent structures locally
113
- - Test locally before platform deployment
114
-
115
- **Rapid Development:**
116
- - Create agents, flows, and skills in seconds
117
- - No web UI context switching required
118
- - Full IDE integration with syntax highlighting
119
-
120
- **Safe Entity Management:**
121
- - Confirmation flags prevent accidental deletions
122
- - Local-first approach enables version control
123
- - Push-to-sync provides controlled deployment
124
-
125
- ### 📊 Statistics
126
- - **Commands Added**: 15 new commands (12 create, 3 delete)
127
- - **API Endpoints**: 19 new integrations
128
- - **Code Changes**: ~1,005 lines added across 7 modified files
129
- - **Documentation**: +146 lines in README.md
130
- - **Type Definitions**: 19 new interfaces and types
8
+ ## [Unreleased]
9
+
10
+ ## [3.1.0] - 2025-10-15
11
+
12
+ ### Added
13
+
14
+ - **Sandbox Chat Testing**: Real-time agent testing with interactive sandbox mode
15
+ - `newo sandbox "<message>"` - Single-command mode for automated testing workflows
16
+ - `newo sandbox --actor <id> "message"` - Multi-turn conversation continuation
17
+ - Automatic persona/actor creation with unique naming (`newo-cli-{guid}`)
18
+ - Chat History API polling with 1-second intervals, 60-second timeout
19
+ - Debug information extraction (flow_idn, skill_idn, session_id, runtime_context_id)
20
+ - Quiet mode (`--quiet`/`-q`) for script-friendly output with minimal logging
21
+ - Single newest message display to avoid overwhelming output
22
+ - **Sandbox API Integration**: 6 new endpoints for sandbox chat functionality
23
+ - `GET /api/v1/integrations` - List available integrations
24
+ - `GET /api/v1/integrations/{id}/connectors` - List integration connectors
25
+ - `POST /api/v1/customer/personas` - Create user persona for sandbox testing
26
+ - `POST /api/v1/customer/personas/{id}/actors` - Create actor (chat session)
27
+ - `POST /api/v1/chat/user/{actorId}` - Send chat message
28
+ - Reused `GET /api/v1/chat/history` - Poll for agent responses with timestamp filtering
29
+ - **Sandbox Utilities Module** (`src/sandbox/chat.ts`):
30
+ - `findSandboxConnector()` - Locate running sandbox connectors
31
+ - `createChatSession()` - Initialize new chat sessions with unique personas
32
+ - `sendMessage()` - Send messages with timestamp tracking for response filtering
33
+ - `pollForResponse()` - Intelligent polling with timestamp-based message filtering
34
+ - `extractAgentMessages()` - Filter and extract agent responses from chat history
35
+ - `formatDebugInfo()` - Format debug information for developer inspection
36
+ - **TypeScript Types**: Comprehensive type definitions for sandbox functionality
37
+ - `Integration`, `Connector` - Integration and connector management
38
+ - `SandboxChatSession` - Session state tracking with persona/actor IDs
39
+ - `ChatDebugInfo` - Debug information structure for agent development
40
+ - `CreateSandboxPersonaRequest/Response` - Persona creation types
41
+ - `CreateActorRequest/Response` - Actor creation types
42
+ - `SendChatMessageRequest` - Chat message sending types
43
+ - **Enhanced Authentication**: Quiet mode support to suppress logging during automated testing
44
+ - **Documentation**: Comprehensive sandbox testing section with usage examples and automation patterns
45
+
46
+ ### Changed
47
+
48
+ - **CLI Architecture**: Added sandbox command routing in main CLI module
49
+ - **API Module**: Extended with sandbox-specific endpoint integrations
50
+ - **Help Command**: Updated with sandbox command reference
51
+ - **README**: Added extensive sandbox testing documentation with multi-turn examples (+101 lines)
52
+
53
+ ### Technical Details
54
+
55
+ - **Message Filtering**: Timestamp-based filtering ensures only new messages shown after user sends message
56
+ - **Session Isolation**: Each sandbox test creates unique persona with GUID to prevent state interference
57
+ - **Polling Strategy**: 1-second intervals with 60-second max wait for agent responses
58
+ - **Error Handling**: Graceful degradation with timeout messages and continuation guidance
59
+ - **Debug Modes**: Standard (condensed) and verbose (detailed) debug information display
60
+ - **Quiet Mode**: Minimal output perfect for shell scripts and CI/CD integration
61
+
62
+ ### Example Usage
63
+
64
+ ```bash
65
+ # Start new conversation
66
+ newo sandbox "Hello, I want to order pizza"
67
+
68
+ # Continue conversation with actor ID from previous response
69
+ newo sandbox --actor abc123... "I want 2 large pepperoni pizzas"
70
+
71
+ # Verbose mode for debugging
72
+ newo sandbox "Test message" --verbose
73
+
74
+ # Quiet mode for automation
75
+ newo sandbox "Test query" --quiet
76
+ ```
77
+
78
+ ## [3.0.0] - 2025-09-29
79
+
80
+ ### Added
81
+
82
+ - **Entity Creation Commands**: 12 new commands for creating NEWO entities locally
83
+ - `newo create-project <idn>` - Create new projects on platform
84
+ - `newo create-persona <name>` - Create agent personas
85
+ - `newo create-attribute <idn>` - Create customer attributes
86
+ - `newo create-agent <idn> --project <pid>` - Create agents locally with metadata
87
+ - `newo create-flow <idn> --agent <aid>` - Create flows with guidance/NSL runner selection
88
+ - `newo create-skill <idn> --flow <fid>` - Create skills with script content initialization
89
+ - `newo create-event <idn> --flow <fid>` - Create flow events for integrations
90
+ - `newo create-state <idn> --flow <fid>` - Create flow state fields (user/flow/global scope)
91
+ - `newo create-parameter <name> --skill <sid>` - Create skill parameters
92
+ - **Entity Deletion Commands**: 3 new commands with confirmation flags
93
+ - `newo delete-agent <aid> --confirm` - Delete agent locally
94
+ - `newo delete-flow <fid> --confirm` - Delete flow locally
95
+ - `newo delete-skill <sid> --confirm` - Delete skill locally
96
+ - **API Integrations**: 19 new endpoints for entity creation, deletion, and publishing
97
+ - **Documentation**: Entity Management Commands section with workflows and examples (+146 lines)
98
+ - **TypeScript Types**: 19 new type definitions for entity operations
99
+
100
+ ### Changed
101
+
102
+ - **Push Command**: Now automatically detects and creates local-only entities on platform
103
+ - Filesystem scanning for entities not yet in project map
104
+ - Creates missing entities in correct hierarchical order (agent flow → skill)
105
+ - Publishes flows after creation
106
+ - **Status Command**: Enhanced with comprehensive change detection
107
+ - Scans for local-only entities not yet on platform
108
+ - Reports new agents/flows/skills awaiting sync
109
+ - Hierarchical display of project structure
110
+ - **Architecture**: Added 14 new command modules in src/cli/commands/
111
+ - **Push Module**: Enhanced with local-only entity scanning (~418 lines)
112
+ - **Status Module**: Enhanced with entity detection (~184 lines)
113
+
114
+ ## [2.0.6] - 2025-09-18
115
+
116
+ ### Changed
117
+
118
+ - Implement proper LCS-based diff algorithm for accurate change detection
119
+ - Clean, accurate differences with proper line matching
120
+ - Improved algorithm eliminates false positives and shows precise modifications
121
+
122
+ ## [2.0.5] - 2025-09-18
123
+
124
+ ### Fixed
125
+
126
+ - Correct diff algorithm to show clean, accurate differences
127
+ - Improved change detection with proper context preservation
128
+
129
+ ## [2.0.4] - 2025-09-18
130
+
131
+ ### Changed
132
+
133
+ - Implement exact GitHub diff format with proper context lines
134
+ - GitHub-style diff with background colors and context
135
+ - Enhanced diff display with line numbers and clearer messaging
136
+
137
+ ## [2.0.3] - 2025-09-18
138
+
139
+ ### Changed
140
+
141
+ - Improve diff display with line numbers and clearer messaging
142
+ - Better visual distinction for changes with colored output
143
+
144
+ ## [2.0.2] - 2025-09-18
145
+
146
+ ### Added
147
+
148
+ - GitHub-style colored diff display for overwrite prompts
149
+ - Enhanced diff visualization with colors and formatting
150
+
151
+ ## [2.0.1] - 2025-09-18
152
+
153
+ ### Fixed
154
+
155
+ - Improve overwrite handling with proper 'all' option support
156
+ - Better handling of batch overwrite operations
131
157
 
132
158
  ## [1.9.3] - 2025-09-17
133
159
 
134
- ### 🏗️ Major Architecture Refactoring
160
+ ### Changed
135
161
 
136
- **CLI Module Restructuring:**
137
162
  - **BREAKING**: Main CLI entry point moved from `dist/cli.js` to `dist/cli/index.js`
138
- - Split monolithic 500+ line `cli.ts` into focused modules:
163
+ - Split monolithic 500+ line `cli.ts` into focused modules
139
164
  - `cli/index.ts` - Main entry point and command routing
140
- - `cli/errors.ts` - Centralized error handling with user-friendly messages
141
- - `cli/customer-selection.ts` - Customer management and selection logic
142
- - `cli/commands/` - Individual command handlers (pull, push, status, conversations, etc.)
143
-
144
- **Sync Module Restructuring:**
145
- - Extracted key functions from 1400+ line `sync.ts` into focused modules:
165
+ - `cli/errors.ts` - Centralized error handling
166
+ - `cli/customer-selection.ts` - Customer management logic
167
+ - `cli/commands/` - Individual command handlers
168
+ - Extracted key functions from 1400+ line `sync.ts` into focused modules
146
169
  - `sync/attributes.ts` - Customer attributes synchronization
147
170
  - `sync/conversations.ts` - Conversation history management
148
171
  - `sync/status.ts` - File status checking and change detection
149
172
  - `sync/index.ts` - Unified exports with backward compatibility
150
-
151
- **Testing Infrastructure:**
152
- - Fixed all test imports to use compiled JavaScript from `dist/` directory
153
- - Converted test utilities from CommonJS to ES modules
154
- - Improved test isolation and ES module compatibility
155
-
156
- ### 🔧 Technical Improvements
157
- - **Maintainability**: Single-responsibility modules with clear interfaces
158
- - **Testability**: Each module can be tested independently with clear dependencies
159
- - **Readability**: Focused modules replace hard-to-navigate monolithic files
160
- - **Extensibility**: Easy to add new commands and sync operations
161
- - **Type Safety**: Enhanced TypeScript compilation with zero errors
162
-
163
- ### 📚 Documentation Updates
164
173
  - Updated CLAUDE.md with new modular architecture documentation
165
- - Added comprehensive module descriptions and benefits
166
- - Updated development patterns for the new structure
167
174
 
168
- ## [2.0.0] - 2025-09-17
169
-
170
- ### 🚀 Major Release: Professional Modular Architecture
171
-
172
- **BREAKING CHANGES**
173
- - **IDN-Based File Naming**: Skills now saved as `{skillIdn}.jinja/.guidance` instead of `skill.jinja/.guidance`
174
- - **Automatic Migration**: Existing files automatically renamed to IDN format during pull
175
- - **Enhanced File Validation**: Multiple script files per skill now generate warnings and block push operations
176
-
177
- ### 🏗️ Complete Architecture Refactoring
175
+ ### Fixed
178
176
 
179
- **CLI Module Restructuring:**
180
- - **Entry Point**: `src/cli.ts` (124 lines) - Clean main entry using modular imports
181
- - **Error Handling**: `src/cli/errors.ts` - Centralized error management with user-friendly messages
182
- - **Customer Management**: `src/cli/customer-selection.ts` - Reusable customer selection logic
183
- - **Command Handlers**: `src/cli/commands/` - Individual handlers for all commands
177
+ - Test imports to use compiled JavaScript from `dist/` directory
178
+ - Test utilities converted from CommonJS to ES modules
179
+ - Improved test isolation and ES module compatibility
184
180
 
185
- **Sync Module Restructuring:**
186
- - **Entry Point**: `src/sync.ts` (13 lines) - Unified exports with re-exports
187
- - **Projects**: `src/sync/projects.ts` - Project sync with progress tracking and IDN naming
188
- - **Push Operations**: `src/sync/push.ts` - File validation and upload with multiple file detection
189
- - **Status Checking**: `src/sync/status.ts` - Change detection with file validation warnings
190
- - **Attributes**: `src/sync/attributes.ts` - Customer attributes synchronization
191
- - **Conversations**: `src/sync/conversations.ts` - Conversation history management
192
- - **Metadata**: `src/sync/metadata.ts` - flows.yaml generation (clean, no prompt_script)
193
- - **File Utilities**: `src/sync/skill-files.ts` - IDN-based naming and validation
181
+ ## [2.0.0] - 2025-09-17
194
182
 
195
- ### 🎯 Enhanced User Experience
183
+ ### Added
196
184
 
197
- **Progress Tracking:**
185
+ - IDN-based skill file naming for easy identification
198
186
  - Real-time progress display during large operations (966+ skills)
199
187
  - Percentage completion with skill counts
200
- - Clean progress updates every 10 processed skills
201
- - Clear completion confirmations
188
+ - Multiple file detection with clear warnings
189
+ - Force mode with `--force/-f` flag for silent operations
190
+ - Complete metadata.yaml hierarchy at all levels
202
191
 
203
- **IDN-Based File Management:**
204
- - Skills named after their IDN for easy identification
192
+ ### Changed
193
+
194
+ - **BREAKING**: Skills now saved as `{skillIdn}.jinja/.guidance` instead of `skill.jinja/.guidance`
195
+ - **BREAKING**: Existing files automatically renamed to IDN format during pull
196
+ - Refactored CLI module structure
197
+ - `src/cli.ts` (124 lines) - Clean main entry using modular imports
198
+ - `src/cli/errors.ts` - Centralized error management
199
+ - `src/cli/customer-selection.ts` - Reusable customer selection logic
200
+ - `src/cli/commands/` - Individual handlers for all commands
201
+ - Refactored sync module structure
202
+ - `src/sync.ts` (13 lines) - Unified exports with re-exports
203
+ - `src/sync/projects.ts` - Project sync with progress tracking
204
+ - `src/sync/push.ts` - File validation and upload
205
+ - `src/sync/status.ts` - Change detection with file validation
206
+ - `src/sync/attributes.ts` - Customer attributes synchronization
207
+ - `src/sync/conversations.ts` - Conversation history management
208
+ - `src/sync/metadata.ts` - flows.yaml generation (removed prompt_script)
209
+ - `src/sync/skill-files.ts` - IDN-based naming and validation
205
210
  - Flexible file discovery (any .jinja/.guidance/.nsl file)
206
211
  - Smart overwrite detection (content-based, not filename-based)
207
- - Force mode with `--force/-f` flag for silent operations
212
+ - Complete hash coverage for flows.yaml and attributes.yaml
213
+ - Zero TypeScript compilation errors with strict typing
214
+ - Modular loading with reduced memory footprint
208
215
 
209
- **Enhanced Validation:**
210
- - Multiple file detection with clear warnings
211
- - Safe push operations that skip problematic skills
212
- - Actionable error messages with resolution guidance
213
- - Clean status display with file-level change detection
216
+ ### Fixed
214
217
 
215
- ### 🔧 Technical Excellence
218
+ - False positive change detection
219
+ - Status now shows "Clean." immediately after pull operations
220
+ - Safe push operations that skip problematic skills with multiple files
216
221
 
217
- **Hash Consistency:**
218
- - Complete hash coverage for flows.yaml and attributes.yaml
219
- - No false positive change detection
220
- - Status shows "Clean." immediately after pull operations
221
- - Consistent hash tracking across all generated files
222
+ ## [1.9.2] - 2025-09-16
222
223
 
223
- **File Structure Optimization:**
224
- - flows.yaml cleanup (removed prompt_script content)
225
- - Automatic attributes.yaml generation during pull
226
- - Complete metadata.yaml hierarchy at all levels
227
- - IDN-based skill folder organization
224
+ ### Added
228
225
 
229
- **Performance & Quality:**
230
- - Zero TypeScript compilation errors with strict typing
231
- - Modular loading with reduced memory footprint
232
- - Efficient API calls and file operations
233
- - Professional error handling and user guidance
234
-
235
- ### 📚 Comprehensive Testing Results
236
-
237
- **All Functions Validated:**
238
- - ✅ Pull: 966/944 skills processed with perfect progress tracking
239
- - ✅ Status: Accurate change detection and clean state validation
240
- - ✅ Push: Successful uploads with smart file validation
241
- - ✅ Multi-customer: Independent customer operations working correctly
242
- - ✅ Attributes: Automatic 230KB+ attributes.yaml generation
243
- - ✅ Conversations: Working conversation history extraction
244
- - ✅ AKB Import: Proper parsing and validation (2 articles parsed)
245
- - ✅ Error Handling: Clear, actionable messages for all scenarios
246
- - ✅ File Validation: Multiple file warnings and safe skipping
226
+ - Max pages limit (50 pages = 5000 acts per persona) to prevent infinite pagination
227
+ - Verbose logging for pagination progress
247
228
 
248
- ## [1.9.2] - 2025-09-16
229
+ ### Changed
230
+
231
+ - Skip personas without newo_voice actors immediately for better performance
232
+ - Optimized control flow to prevent hanging during large conversation extraction
249
233
 
250
234
  ### Fixed
251
- - **Pagination Safety**: Prevent infinite loops and hanging during conversation processing
252
- - Added max pages limit (50 pages = 5000 acts per persona) to prevent infinite pagination
253
- - Improved persona filtering for voice actors to avoid unnecessary API calls
254
- - Better error handling and verbose logging for debugging conversation processing
255
- - Graceful handling of personas without voice actors (adds with empty acts array)
256
235
 
257
- ### Enhanced
258
- - **Performance Optimization**: Faster conversation processing with early exits
259
- - Skip personas without newo_voice actors immediately
260
- - Clear verbose logging for pagination progress
261
- - Optimized control flow to prevent hanging during large conversation extraction
236
+ - Infinite loops during conversation processing
237
+ - Improved persona filtering for voice actors
238
+ - Graceful handling of personas without voice actors
262
239
 
263
240
  ## [1.9.1] - 2025-09-16
264
241
 
265
- ### Fixed
266
- - **Clean Chat History Implementation**: Remove conversations acts API fallback entirely
267
- - Eliminates all 403 "Invalid token or account_id field missing" errors
268
- - Uses only `/api/v1/chat/history` endpoint which works with current API keys
269
- - Removed unused `getConversationActs()` function and related types
270
- - Clean implementation without permission-dependent fallbacks
271
-
272
242
  ### Removed
273
- - **Obsolete Code Cleanup**: Remove unused conversation acts API components
274
- - `getConversationActs()` function (unused after chat history integration)
275
- - `ConversationActsParams` and `ConversationActsResponse` interfaces
276
- - Fallback logic that caused 403 errors for personas without proper permissions
243
+
244
+ - Conversations acts API fallback (eliminates 403 errors)
245
+ - `getConversationActs()` function (unused after chat history integration)
246
+ - `ConversationActsParams` and `ConversationActsResponse` interfaces
247
+ - Fallback logic that caused 403 errors for personas without proper permissions
248
+
249
+ ### Changed
250
+
251
+ - Use only `/api/v1/chat/history` endpoint which works with current API keys
277
252
 
278
253
  ## [1.9.0] - 2025-09-16
279
254
 
280
255
  ### Added
281
- - **User Conversations Pull Functionality**: Complete conversation history extraction
282
- - New `newo conversations` command to download user conversations and personas
283
- - Multi-customer conversation support with `--customer <idn>` flag
284
- - Chat History API integration (`/api/v1/chat/history`) with fallback to conversations acts API
285
- - Automatic phone number extraction from persona actors
286
- - Comprehensive pagination handling for large conversation datasets
287
- - Clean YAML output format in `newo_customers/{customerIdn}/conversations.yaml`
288
256
 
289
- ### Enhanced
290
- - **Conversation Data Processing**: Optimized structure and chronological ordering
291
- - Acts sorted by datetime ascending (chronological conversation flow)
292
- - Personas sorted by most recent activity (descending)
293
- - Redundant fields removed (`is_agent`, `session_id: unknown`, etc.)
294
- - Clean persona structure: `id` `name` → `phone` → `act_count` → `acts`
295
- - Proper datetime extraction from chat history API responses
296
-
297
- ### Technical
298
- - **New API Functions**: Type-safe conversation API integration
257
+ - `newo conversations` command to download user conversations and personas
258
+ - Multi-customer conversation support with `--customer <idn>` flag
259
+ - Chat History API integration (`/api/v1/chat/history`) with fallback support
260
+ - Automatic phone number extraction from persona actors
261
+ - Comprehensive pagination handling for large conversation datasets
262
+ - Clean YAML output format in `newo_customers/{customerIdn}/conversations.yaml`
263
+ - Type-safe conversation API integration
299
264
  - `listUserPersonas()` - Get all user personas with pagination
300
265
  - `getChatHistory()` - Get conversation history for user actors
301
266
  - `getConversationActs()` - Fallback for accounts with proper permissions
302
267
  - `pullConversations()` - Complete conversation sync orchestration
303
- - **NPM Scripts**: Added convenient conversation commands
304
- - `npm run conversations` - Build and pull conversations
305
- - `npm run conversations:all` - Legacy alias for compatibility
268
+ - NPM scripts: `npm run conversations` and `npm run conversations:all`
269
+
270
+ ### Changed
306
271
 
307
- ### Performance
308
- - **Concurrent Processing**: Efficient conversation data extraction
309
- - Parallel API calls with concurrency limiting (p-limit)
310
- - Graceful error handling with persona-level fault tolerance
311
- - No artificial limits on personas or acts (loads all available data)
312
- - Multi-customer support with authentication reuse
272
+ - Acts sorted by datetime ascending (chronological conversation flow)
273
+ - Personas sorted by most recent activity (descending)
274
+ - Clean persona structure: `id` `name` → `phone` → `act_count` → `acts`
275
+ - Parallel API calls with concurrency limiting (p-limit)
276
+ - Graceful error handling with persona-level fault tolerance
277
+
278
+ ### Removed
279
+
280
+ - Redundant fields (`is_agent`, `session_id: unknown`, etc.)
313
281
 
314
282
  ## [1.8.0] - 2025-09-15
315
283
 
316
284
  ### Added
317
- - **Complete Metadata Change Tracking**: Comprehensive metadata.yaml file synchronization
318
- - All metadata.yaml files now tracked with hash-based change detection
319
- - Status command shows detailed metadata changes (title, runner_type, model)
320
- - Push command automatically updates skills when metadata changes
321
- - flows.yaml automatically regenerated when metadata changes detected
322
- - Preserves flows.yaml format consistency with backup/comparison system
323
285
 
324
- ### Enhanced
325
- - **Comprehensive File Synchronization**: All NEWO workspace files fully tracked
326
- - Skills: .guidance and .jinja script files with hash tracking ✓
327
- - Metadata: metadata.yaml files with skill updates + flows.yaml regeneration ✓
328
- - Attributes: attributes.yaml with diff-based sync for 233 customer attributes ✓
329
- - Flows: flows.yaml with automatic regeneration and format preservation ✓
330
- - Multi-customer: All file types synchronized across multiple customer workspaces ✓
331
-
332
- ### Technical
333
- - **flows.yaml Regeneration**: Automatic regeneration pipeline when metadata changes
334
- - Creates backup before regeneration for format comparison
335
- - Re-fetches project data to ensure accuracy
336
- - Updates hash tracking for regenerated flows.yaml
337
- - Maintains consistent YAML format structure
286
+ - Complete metadata.yaml file synchronization with hash-based change detection
287
+ - Status command shows detailed metadata changes (title, runner_type, model)
288
+ - Push command automatically updates skills when metadata changes
289
+ - Automatic flows.yaml regeneration when metadata changes detected
290
+ - flows.yaml backup/comparison system for format preservation
291
+
292
+ ### Changed
293
+
294
+ - All NEWO workspace files fully tracked
295
+ - Skills: .guidance and .jinja script files with hash tracking
296
+ - Metadata: metadata.yaml files with skill updates + flows.yaml regeneration
297
+ - Attributes: attributes.yaml with diff-based sync for 233 customer attributes
298
+ - Flows: flows.yaml with automatic regeneration and format preservation
299
+ - Multi-customer: All file types synchronized across multiple customer workspaces
300
+ - Automatic regeneration pipeline creates backup before regeneration
301
+ - Re-fetches project data to ensure accuracy
302
+ - Maintains consistent YAML format structure
338
303
 
339
304
  ## [1.7.3] - 2025-09-15
340
305
 
341
306
  ### Added
342
- - **Complete Attributes Change Tracking**: Full hash-based change detection for customer attributes
343
- - Attributes.yaml files now included in hash tracking during pull operations
344
- - Status command detects and reports modifications to attributes.yaml files
345
- - Push command detects and handles attributes changes with proper synchronization
346
- - Comprehensive workflow: modify → status shows change → push applies change → status shows clean
347
307
 
348
- ### Enhanced
349
- - **File Synchronization Scope**: Extended to cover all file types in NEWO workspace
350
- - Skills: .guidance and .jinja files with full hash tracking ✓
351
- - Attributes: customer attributes.yaml with change detection ✓
352
- - Metadata: flows.yaml and metadata.yaml files tracked ✓
353
- - Multi-customer: all file types synchronized across multiple customers ✓
308
+ - Full hash-based change detection for customer attributes
309
+ - Attributes.yaml files included in hash tracking during pull operations
310
+ - Status command detects and reports modifications to attributes.yaml files
311
+ - Push command handles attributes changes with proper synchronization
312
+
313
+ ### Changed
314
+
315
+ - Extended file synchronization scope to all NEWO workspace file types
316
+ - Skills: .guidance and .jinja files with full hash tracking
317
+ - Attributes: customer attributes.yaml with change detection
318
+ - Metadata: flows.yaml and metadata.yaml files tracked
319
+ - Multi-customer: all file types synchronized across multiple customers
354
320
 
355
321
  ## [1.7.2] - 2025-09-15
356
322
 
323
+ ### Added
324
+
325
+ - `attributes.yaml` file tracking with modification times and sizes
326
+ - `flows.yaml` file tracking and statistics
327
+ - Comprehensive file monitoring across entire project structure
328
+
357
329
  ### Fixed
358
- - **YAML Enum Parsing**: Fixed attributes push check error with `!enum` format
359
- - Changed from YAML parsing to file stats for change detection
360
- - Prevents parsing errors with custom enum format in attributes.yaml
361
- - Maintains functionality while avoiding format conflicts
362
330
 
363
- ### Enhanced
364
- - **Status Command Scope**: Extended status checking to include all file types
365
- - Now tracks `attributes.yaml` files with modification times and sizes
366
- - Added `flows.yaml` file tracking and statistics
367
- - Comprehensive file monitoring across entire project structure
368
- - Better visibility into all managed files
331
+ - Attributes push check error with `!enum` format
332
+ - Changed from YAML parsing to file stats for change detection
333
+ - Prevents parsing errors with custom enum format in attributes.yaml
369
334
 
370
335
  ## [1.7.1] - 2025-09-15
371
336
 
372
- ### Enhanced
373
- - **Multi-Customer Commands**: Improved user experience for multi-customer operations
374
- - `newo status` now automatically checks all customers when no default is specified
375
- - `newo push` provides interactive customer selection dialog when multiple customers exist
376
- - No more error messages for commands that support multi-customer operations
377
- - Better user guidance with clear options for customer selection
337
+ ### Changed
338
+
339
+ - `newo status` now automatically checks all customers when no default is specified
340
+ - `newo push` provides interactive customer selection dialog when multiple customers exist
341
+ - Moved customer selection logic into command-specific handlers
342
+ - Each command now handles customer selection appropriately
378
343
 
379
344
  ### Fixed
380
- - **Command Flow**: Moved customer selection logic into command-specific handlers
381
- - Prevents early exit errors for multi-customer operations
382
- - Each command now handles customer selection appropriately
383
- - Maintains backward compatibility with single-customer setups
345
+
346
+ - Early exit errors for multi-customer operations
347
+ - Maintains backward compatibility with single-customer setups
384
348
 
385
349
  ## [1.7.0] - 2025-09-15
386
350
 
387
351
  ### Added
388
- - **Customer Attributes Synchronization**: Complete pull/push functionality for customer attributes
389
- - `GET /api/v1/bff/customer/attributes?include_hidden=true` - Fetches all 233 customer attributes including hidden system attributes
390
- - `PUT /api/v1/customer/attributes/{attributeId}` - Updates individual customer attributes
391
- - Saves to `newo_customers/{customerIdn}/attributes.yaml` in customer root directory
392
- - YAML format matches reference specification exactly with literal blocks, enum types, and proper multi-line formatting
393
- - Separate ID mapping stored in `.newo/{customerIdn}/attributes-map.json` for push operations
394
- - Integrated into existing `pull` and `push` commands seamlessly
395
- - Full TypeScript type safety with `CustomerAttribute` and `CustomerAttributesResponse` interfaces
396
352
 
397
- ### Enhanced
398
- - **YAML Format Compliance**: Perfect format matching with reference files
353
+ - Complete pull/push functionality for customer attributes
354
+ - `GET /api/v1/bff/customer/attributes?include_hidden=true` endpoint integration (fetches 233 attributes)
355
+ - `PUT /api/v1/customer/attributes/{attributeId}` endpoint integration
356
+ - Saves to `newo_customers/{customerIdn}/attributes.yaml` in customer root directory
357
+ - YAML format with literal blocks, enum types, and proper multi-line formatting
358
+ - Separate ID mapping in `.newo/{customerIdn}/attributes-map.json` for push operations
359
+ - Full TypeScript type safety with `CustomerAttribute` and `CustomerAttributesResponse` interfaces
360
+ - API layer functions: `updateCustomerAttribute()` and enhanced `getCustomerAttributes()`
361
+ - File system utilities: `customerAttributesPath()` and `customerAttributesMapPath()`
362
+
363
+ ### Changed
364
+
365
+ - Integrated attributes handling into existing `pull` and `push` commands
366
+ - YAML format compliance with reference specification
399
367
  - Literal block scalars (`|-`) for multi-line strings
400
368
  - Proper enum format (`!enum "AttributeValueTypes.string"`)
401
369
  - Complex JSON string formatting with proper line breaks
402
- - No escaped quotes in output for better readability
403
- - **Metadata Generation**: Removed legacy JSON metadata files, YAML-only approach
404
- - Eliminates redundant `metadata.json` files
405
- - Cleaner file structure with single source of truth
406
- - Improved performance with fewer file operations
407
-
408
- ### Technical
409
- - **API Layer**: Added `updateCustomerAttribute()` and enhanced `getCustomerAttributes()` with `includeHidden` parameter
410
- - **Sync Engine**: Integrated attributes handling into `pullAll()` and `pushChanged()` functions
411
- - **File System**: Added `customerAttributesPath()` and `customerAttributesMapPath()` utilities
412
- - **Type Safety**: Extended type definitions with proper customer attribute interfaces
413
- - **Error Handling**: Comprehensive error handling for attributes operations with graceful fallbacks
370
+ - No escaped quotes in output
371
+
372
+ ### Removed
373
+
374
+ - Legacy JSON metadata files (YAML-only approach)
375
+ - Redundant `metadata.json` files
414
376
 
415
377
  ## [1.6.1] - 2025-09-13
416
378
 
379
+ ### Added
380
+
381
+ - `"type": "module"` to package.json for proper ES module handling
382
+
417
383
  ### Fixed
418
- - **YAML Enum Formatting**: Fixed enum formatting in `flows.yaml` generation to properly handle NEWO enum types
419
- - Corrected enum value serialization from quoted strings to proper YAML enum format
420
- - Fixed issue where enum values like `!enum "RunnerType.guidance"` were incorrectly quoted
421
- - Ensures generated `flows.yaml` files are properly formatted for NEWO platform consumption
422
384
 
423
- ### Enhanced
424
- - **ES Module Support**: Added `"type": "module"` to package.json for proper ES module handling
425
- - Resolves Node.js warnings about module type detection
426
- - Improves performance by eliminating module type guessing
427
- - Ensures consistent ES module behavior across all environments
385
+ - Enum formatting in `flows.yaml` generation for NEWO enum types
386
+ - Enum value serialization from quoted strings to proper YAML enum format
387
+ - Issue where enum values like `!enum "RunnerType.guidance"` were incorrectly quoted
428
388
 
429
389
  ## [1.6.0] - 2025-09-13
430
390
 
@@ -476,7 +436,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
476
436
  - **Professional Infrastructure**: Industry-standard publishing pipeline with version management
477
437
  - **Quality Gates**: Automated validation before publishing (TypeScript, linting, building, package validation)
478
438
 
479
- ## [1.5.2] - 2025-01-15
439
+ ## [1.5.2] - 2025-09-04
480
440
 
481
441
  ### Enhanced
482
442
  - **Documentation Overhaul**: Complete README restructuring with professional presentation
@@ -506,7 +466,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
506
466
  - **Clear Navigation**: Improved documentation structure with proper sectioning and examples
507
467
  - **Enhanced Onboarding**: Comprehensive quick-start guide and configuration examples
508
468
 
509
- ## [1.5.1] - 2025-01-14
469
+ ## [1.5.1] - 2025-09-03
510
470
 
511
471
  ### Added
512
472
  - **Comprehensive Test Coverage**: Added extensive test suites for all major modules
@@ -729,10 +689,40 @@ Another Item: $Price [Modifiers: modifier3]
729
689
  ## [1.2.1] - Previous Release
730
690
 
731
691
  ### Added
692
+
732
693
  - Initial NEWO CLI functionality
733
694
  - Two-way sync between NEWO platform and local files
734
695
  - Support for .guidance and .jinja file types
735
696
  - SHA256-based change detection
736
697
  - Project structure export to flows.yaml
737
698
  - GitHub Actions CI/CD integration
738
- - Robust authentication with token refresh
699
+ - Robust authentication with token refresh
700
+
701
+ [Unreleased]: https://github.com/sabbah13/newo-cli/compare/v3.1.0...HEAD
702
+ [3.1.0]: https://github.com/sabbah13/newo-cli/compare/v3.0.0...v3.1.0
703
+ [3.0.0]: https://github.com/sabbah13/newo-cli/compare/v2.0.6...v3.0.0
704
+ [2.0.6]: https://github.com/sabbah13/newo-cli/compare/v2.0.5...v2.0.6
705
+ [2.0.5]: https://github.com/sabbah13/newo-cli/compare/v2.0.4...v2.0.5
706
+ [2.0.4]: https://github.com/sabbah13/newo-cli/compare/v2.0.3...v2.0.4
707
+ [2.0.3]: https://github.com/sabbah13/newo-cli/compare/v2.0.2...v2.0.3
708
+ [2.0.2]: https://github.com/sabbah13/newo-cli/compare/v2.0.1...v2.0.2
709
+ [2.0.1]: https://github.com/sabbah13/newo-cli/compare/v2.0.0...v2.0.1
710
+ [2.0.0]: https://github.com/sabbah13/newo-cli/compare/v1.8.0...v2.0.0
711
+ [1.9.3]: https://github.com/sabbah13/newo-cli/compare/v1.9.2...v1.9.3
712
+ [1.9.2]: https://github.com/sabbah13/newo-cli/compare/v1.9.1...v1.9.2
713
+ [1.9.1]: https://github.com/sabbah13/newo-cli/compare/v1.9.0...v1.9.1
714
+ [1.9.0]: https://github.com/sabbah13/newo-cli/compare/v1.8.0...v1.9.0
715
+ [1.8.0]: https://github.com/sabbah13/newo-cli/compare/v1.7.0...v1.8.0
716
+ [1.7.3]: https://github.com/sabbah13/newo-cli/compare/v1.7.2...v1.7.3
717
+ [1.7.2]: https://github.com/sabbah13/newo-cli/compare/v1.7.1...v1.7.2
718
+ [1.7.1]: https://github.com/sabbah13/newo-cli/compare/v1.7.0...v1.7.1
719
+ [1.7.0]: https://github.com/sabbah13/newo-cli/compare/v1.6.1...v1.7.0
720
+ [1.6.1]: https://github.com/sabbah13/newo-cli/compare/v1.6.0...v1.6.1
721
+ [1.6.0]: https://github.com/sabbah13/newo-cli/compare/v1.5.1...v1.6.0
722
+ [1.5.2]: https://github.com/sabbah13/newo-cli/compare/v1.5.1...v1.5.2
723
+ [1.5.1]: https://github.com/sabbah13/newo-cli/compare/v1.5.0...v1.5.1
724
+ [1.5.0]: https://github.com/sabbah13/newo-cli/compare/v1.4.0...v1.5.0
725
+ [1.4.0]: https://github.com/sabbah13/newo-cli/compare/v1.2.1...v1.4.0
726
+ [1.3.0]: https://github.com/sabbah13/newo-cli/compare/v1.2.1...v1.3.0
727
+ [1.2.2]: https://github.com/sabbah13/newo-cli/compare/v1.2.1...v1.2.2
728
+ [1.2.1]: https://github.com/sabbah13/newo-cli/releases/tag/v1.2.1