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 +337 -347
- package/README.md +111 -0
- package/dist/api.d.ts +7 -1
- package/dist/api.js +36 -0
- package/dist/auth.js +4 -0
- package/dist/cli/commands/help.js +10 -0
- package/dist/cli/commands/sandbox.d.ts +14 -0
- package/dist/cli/commands/sandbox.js +306 -0
- package/dist/cli.js +9 -0
- package/dist/sandbox/chat.d.ts +40 -0
- package/dist/sandbox/chat.js +280 -0
- package/dist/types.d.ts +81 -0
- package/package.json +6 -3
- package/src/api.ts +55 -1
- package/src/auth.ts +7 -2
- package/src/cli/commands/help.ts +10 -0
- package/src/cli/commands/sandbox.ts +365 -0
- package/src/cli.ts +11 -0
- package/src/sandbox/chat.ts +339 -0
- package/src/types.ts +98 -0
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.
|
|
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
|
-
## [
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
- `
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- `
|
|
27
|
-
- `
|
|
28
|
-
- `
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- `
|
|
32
|
-
- `
|
|
33
|
-
- `
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
- `
|
|
39
|
-
- `
|
|
40
|
-
- `
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
**
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
|
|
62
|
-
###
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
**
|
|
98
|
-
- 19 new type definitions for entity
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
**
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
**
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
-
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
###
|
|
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
|
|
141
|
-
- `cli/customer-selection.ts` - Customer management
|
|
142
|
-
- `cli/commands/` - Individual command handlers
|
|
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
|
-
|
|
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
|
-
|
|
180
|
-
-
|
|
181
|
-
-
|
|
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
|
-
|
|
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
|
-
###
|
|
183
|
+
### Added
|
|
196
184
|
|
|
197
|
-
|
|
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
|
-
-
|
|
201
|
-
-
|
|
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
|
-
|
|
204
|
-
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
230
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
258
|
-
-
|
|
259
|
-
|
|
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
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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
|
-
|
|
290
|
-
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
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
|
-
-
|
|
304
|
-
|
|
305
|
-
|
|
268
|
+
- NPM scripts: `npm run conversations` and `npm run conversations:all`
|
|
269
|
+
|
|
270
|
+
### Changed
|
|
306
271
|
|
|
307
|
-
|
|
308
|
-
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
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
|
-
|
|
325
|
-
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
-
|
|
334
|
-
-
|
|
335
|
-
-
|
|
336
|
-
-
|
|
337
|
-
-
|
|
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
|
-
|
|
349
|
-
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
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
|
-
|
|
364
|
-
-
|
|
365
|
-
|
|
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
|
-
###
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
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
|
-
|
|
381
|
-
|
|
382
|
-
|
|
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
|
-
|
|
398
|
-
-
|
|
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
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
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
|
-
|
|
424
|
-
-
|
|
425
|
-
|
|
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-
|
|
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-
|
|
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
|