newo 3.0.0 → 3.2.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 +475 -347
- package/README.md +111 -0
- package/dist/api.d.ts +20 -1
- package/dist/api.js +110 -0
- package/dist/auth.js +4 -0
- package/dist/cli/commands/help.js +30 -1
- package/dist/cli/commands/list-actions.d.ts +3 -0
- package/dist/cli/commands/list-actions.js +89 -0
- package/dist/cli/commands/profile.d.ts +3 -0
- package/dist/cli/commands/profile.js +62 -0
- package/dist/cli/commands/pull-akb.d.ts +3 -0
- package/dist/cli/commands/pull-akb.js +19 -0
- package/dist/cli/commands/pull-attributes.js +7 -0
- package/dist/cli/commands/pull-integrations.d.ts +3 -0
- package/dist/cli/commands/pull-integrations.js +19 -0
- package/dist/cli/commands/push-akb.d.ts +3 -0
- package/dist/cli/commands/push-akb.js +19 -0
- package/dist/cli/commands/push-integrations.d.ts +3 -0
- package/dist/cli/commands/push-integrations.js +19 -0
- package/dist/cli/commands/sandbox.d.ts +14 -0
- package/dist/cli/commands/sandbox.js +306 -0
- package/dist/cli.js +33 -0
- package/dist/sandbox/chat.d.ts +40 -0
- package/dist/sandbox/chat.js +280 -0
- package/dist/sync/akb.d.ts +14 -0
- package/dist/sync/akb.js +175 -0
- package/dist/sync/attributes.d.ts +19 -0
- package/dist/sync/attributes.js +221 -2
- package/dist/sync/integrations.d.ts +23 -0
- package/dist/sync/integrations.js +340 -0
- package/dist/sync/projects.js +171 -1
- package/dist/sync/push.js +15 -0
- package/dist/sync/skill-files.js +1 -1
- package/dist/sync/status.js +4 -2
- package/dist/types.d.ts +209 -0
- package/package.json +14 -3
- package/src/api.ts +186 -1
- package/src/auth.ts +7 -2
- package/src/cli/commands/help.ts +30 -1
- package/src/cli/commands/list-actions.ts +112 -0
- package/src/cli/commands/profile.ts +79 -0
- package/src/cli/commands/pull-akb.ts +27 -0
- package/src/cli/commands/pull-attributes.ts +8 -0
- package/src/cli/commands/pull-integrations.ts +27 -0
- package/src/cli/commands/push-akb.ts +27 -0
- package/src/cli/commands/push-integrations.ts +27 -0
- package/src/cli/commands/sandbox.ts +365 -0
- package/src/cli.ts +41 -0
- package/src/sandbox/chat.ts +339 -0
- package/src/sync/akb.ts +205 -0
- package/src/sync/attributes.ts +269 -2
- package/src/sync/integrations.ts +403 -0
- package/src/sync/projects.ts +207 -1
- package/src/sync/push.ts +17 -0
- package/src/sync/skill-files.ts +1 -1
- package/src/sync/status.ts +4 -2
- package/src/types.ts +248 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,429 +2,526 @@
|
|
|
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
|
-
- `newo
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
- `newo
|
|
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
|
-
-
|
|
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.2.0] - 2025-10-17
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Integration Management**: Complete integration and connector management system
|
|
15
|
+
- `newo pull-integrations` - Download all integrations, connectors, and webhooks to local YAML files
|
|
16
|
+
- `newo push-integrations` - Upload connector changes with full CRUD support (Create, Update, Delete)
|
|
17
|
+
- Combined integration files: `{integration_idn}.yaml` contains metadata + settings in single file
|
|
18
|
+
- Nested connector structure: Each connector in own subdirectory `connectors/{connector_idn}/{connector_idn}.yaml`
|
|
19
|
+
- Automatic webhook synchronization (outgoing + incoming webhooks)
|
|
20
|
+
- 15 integrations discovered and managed (api, sandbox, twilio, magic_browser, newo_chat, etc.)
|
|
21
|
+
- Full connector lifecycle: Create via YAML + push → Modify → Delete via YAML removal + push
|
|
22
|
+
- **AKB Knowledge Base Management**: Complete knowledge base synchronization
|
|
23
|
+
- `newo pull-akb` - Download AKB articles for all personas linked to agents
|
|
24
|
+
- `newo push-akb` - Upload AKB articles from local YAML files to platform
|
|
25
|
+
- YAML format matches backup structure exactly for compatibility
|
|
26
|
+
- Automatic persona-to-agent mapping via agent IDN
|
|
27
|
+
- Pagination support for large knowledge bases
|
|
28
|
+
- Articles stored in `akb/{agent_idn}.yaml` format
|
|
29
|
+
- **Project Attributes**: Full project-level attribute management
|
|
30
|
+
- Enhanced `newo pull-attributes` to pull both customer AND project attributes
|
|
31
|
+
- Project attributes saved to `projects/{project_idn}/attributes.yaml`
|
|
32
|
+
- Push integrated into main `newo push` command
|
|
33
|
+
- Automatic ID mapping for push operations
|
|
34
|
+
- Same YAML format as customer attributes with !enum tags
|
|
35
|
+
- Change detection and update mechanism
|
|
36
|
+
- **Developer Tools**: Reference and productivity features
|
|
37
|
+
- `newo list-actions` - List all 78 available NSL/Jinja script actions with categorization
|
|
38
|
+
- `newo profile` - Display customer profile information (organization, email, platform links)
|
|
39
|
+
- Action categorization into 12 groups (Gen, Get, Create, Delete, Update, etc.)
|
|
40
|
+
- Verbose mode shows complete parameter schemas for each action
|
|
41
|
+
- **API Integrations**: 17 new API endpoints
|
|
42
|
+
- Integration endpoints: GET integrations, connectors, settings
|
|
43
|
+
- Connector CRUD: POST, PUT, DELETE for connectors
|
|
44
|
+
- Webhook endpoints: GET outgoing/incoming webhooks
|
|
45
|
+
- AKB endpoints: GET personas, topics; POST import
|
|
46
|
+
- Project attribute endpoints: GET, PUT for project attributes
|
|
47
|
+
- Script actions endpoint: GET all NSL actions
|
|
48
|
+
- Customer profile endpoint: GET profile information
|
|
49
|
+
- **TypeScript Types**: 22 new interfaces for complete type safety
|
|
50
|
+
- Integration types: Integration, Connector, IntegrationSetting, CreateConnectorRequest, UpdateConnectorRequest
|
|
51
|
+
- Webhook types: OutgoingWebhook, IncomingWebhook
|
|
52
|
+
- AKB types: Persona, AkbTopic, AkbTopicItem, AkbYamlTopic
|
|
53
|
+
- Script action types: ScriptAction, ArgumentSchema
|
|
54
|
+
- Metadata types: IntegrationMetadata, ConnectorMetadata, IntegrationsYamlData
|
|
55
|
+
|
|
56
|
+
### Changed
|
|
57
|
+
|
|
58
|
+
- **File Structure**: Enhanced directory hierarchy with new integration and AKB folders
|
|
59
|
+
- `newo_customers/{customer}/integrations/` - Integration configurations
|
|
60
|
+
- `newo_customers/{customer}/akb/` - AKB knowledge base articles
|
|
61
|
+
- `newo_customers/{customer}/projects/{project}/attributes.yaml` - Project attributes
|
|
62
|
+
- **Pull Attributes Command**: Now pulls both customer and project attributes in single command
|
|
63
|
+
- **Push Command**: Enhanced to push project attribute changes alongside skill changes
|
|
64
|
+
- **Help Documentation**: Comprehensive updates with all new commands and file structure
|
|
65
|
+
- **Integration Structure**: Nested connector directories with webhook subdirectories
|
|
66
|
+
- `integrations/{integration}/{integration}.yaml` - Combined metadata + settings
|
|
67
|
+
- `integrations/{integration}/connectors/{connector}/{connector}.yaml` - Connector config
|
|
68
|
+
- `integrations/{integration}/connectors/{connector}/webhooks/` - Webhook files
|
|
69
|
+
|
|
70
|
+
### Technical Details
|
|
71
|
+
|
|
72
|
+
- **Modular Architecture**: 8 new modules created
|
|
73
|
+
- `src/sync/integrations.ts` (340+ lines) - Integration/connector/webhook sync
|
|
74
|
+
- `src/sync/akb.ts` (205 lines) - AKB knowledge base sync
|
|
75
|
+
- `src/cli/commands/pull-integrations.ts` - Integration pull handler
|
|
76
|
+
- `src/cli/commands/push-integrations.ts` - Integration push handler
|
|
77
|
+
- `src/cli/commands/pull-akb.ts` - AKB pull handler
|
|
78
|
+
- `src/cli/commands/push-akb.ts` - AKB push handler
|
|
79
|
+
- `src/cli/commands/list-actions.ts` - Script actions listing
|
|
80
|
+
- `src/cli/commands/profile.ts` - Profile viewer
|
|
81
|
+
- **Enhanced Modules**: 6 existing modules updated
|
|
82
|
+
- `src/types.ts` (+160 lines) - New type definitions
|
|
83
|
+
- `src/api.ts` (+110 lines) - New API functions
|
|
84
|
+
- `src/sync/attributes.ts` (+126 lines) - Project attribute support
|
|
85
|
+
- `src/sync/push.ts` (+15 lines) - Project attribute push integration
|
|
86
|
+
- `src/cli.ts` (+12 lines) - New command routing
|
|
87
|
+
- `src/cli/commands/help.ts` (+30 lines) - Documentation updates
|
|
88
|
+
- **Webhook Association**: Webhooks grouped by connector_idn and stored in connector subdirectories
|
|
89
|
+
- **Change Detection**: Smart comparison for connectors (title, status, settings)
|
|
90
|
+
- **Error Handling**: Graceful handling of missing settings endpoints (404 errors)
|
|
91
|
+
- **ID Mapping**: Separate JSON files for attribute ID mappings to enable push operations
|
|
92
|
+
- **YAML Parsing**: Custom !enum tag handling for AttributeValueTypes
|
|
93
|
+
|
|
94
|
+
### Example Usage
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Integration management
|
|
98
|
+
newo pull-integrations # Download all integrations + webhooks
|
|
99
|
+
newo push-integrations # Upload connector changes
|
|
100
|
+
|
|
101
|
+
# Knowledge base management
|
|
102
|
+
newo pull-akb # Download AKB for personas with agents
|
|
103
|
+
newo push-akb # Upload AKB articles
|
|
104
|
+
|
|
105
|
+
# Enhanced attributes
|
|
106
|
+
newo pull-attributes # Now pulls customer + project attributes
|
|
107
|
+
newo push # Now pushes project attributes too
|
|
108
|
+
|
|
109
|
+
# Developer tools
|
|
110
|
+
newo profile # View customer information
|
|
111
|
+
newo list-actions # Browse 78 NSL actions
|
|
112
|
+
newo list-actions --verbose # With parameter details
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Files Created
|
|
116
|
+
|
|
117
|
+
**Integration Structure:**
|
|
118
|
+
```
|
|
119
|
+
newo_customers/{customer}/integrations/
|
|
120
|
+
├── integrations.yaml
|
|
121
|
+
└── {integration_idn}/
|
|
122
|
+
├── {integration_idn}.yaml # Combined metadata + settings
|
|
123
|
+
└── connectors/
|
|
124
|
+
└── {connector_idn}/
|
|
125
|
+
├── {connector_idn}.yaml
|
|
126
|
+
└── webhooks/
|
|
127
|
+
├── outgoing.yaml
|
|
128
|
+
└── incoming.yaml
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**AKB Structure:**
|
|
132
|
+
```
|
|
133
|
+
newo_customers/{customer}/akb/
|
|
134
|
+
└── {agent_idn}.yaml # AKB articles per agent
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Project Attributes:**
|
|
138
|
+
```
|
|
139
|
+
newo_customers/{customer}/projects/{project}/
|
|
140
|
+
└── attributes.yaml # Project-specific attributes
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Breaking Changes
|
|
144
|
+
|
|
145
|
+
None. All changes are additive and backward compatible.
|
|
146
|
+
|
|
147
|
+
## [3.1.0] - 2025-10-15
|
|
148
|
+
|
|
149
|
+
### Added
|
|
150
|
+
|
|
151
|
+
- **Sandbox Chat Testing**: Real-time agent testing with interactive sandbox mode
|
|
152
|
+
- `newo sandbox "<message>"` - Single-command mode for automated testing workflows
|
|
153
|
+
- `newo sandbox --actor <id> "message"` - Multi-turn conversation continuation
|
|
154
|
+
- Automatic persona/actor creation with unique naming (`newo-cli-{guid}`)
|
|
155
|
+
- Chat History API polling with 1-second intervals, 60-second timeout
|
|
156
|
+
- Debug information extraction (flow_idn, skill_idn, session_id, runtime_context_id)
|
|
157
|
+
- Quiet mode (`--quiet`/`-q`) for script-friendly output with minimal logging
|
|
158
|
+
- Single newest message display to avoid overwhelming output
|
|
159
|
+
- **Sandbox API Integration**: 6 new endpoints for sandbox chat functionality
|
|
160
|
+
- `GET /api/v1/integrations` - List available integrations
|
|
161
|
+
- `GET /api/v1/integrations/{id}/connectors` - List integration connectors
|
|
162
|
+
- `POST /api/v1/customer/personas` - Create user persona for sandbox testing
|
|
163
|
+
- `POST /api/v1/customer/personas/{id}/actors` - Create actor (chat session)
|
|
164
|
+
- `POST /api/v1/chat/user/{actorId}` - Send chat message
|
|
165
|
+
- Reused `GET /api/v1/chat/history` - Poll for agent responses with timestamp filtering
|
|
166
|
+
- **Sandbox Utilities Module** (`src/sandbox/chat.ts`):
|
|
167
|
+
- `findSandboxConnector()` - Locate running sandbox connectors
|
|
168
|
+
- `createChatSession()` - Initialize new chat sessions with unique personas
|
|
169
|
+
- `sendMessage()` - Send messages with timestamp tracking for response filtering
|
|
170
|
+
- `pollForResponse()` - Intelligent polling with timestamp-based message filtering
|
|
171
|
+
- `extractAgentMessages()` - Filter and extract agent responses from chat history
|
|
172
|
+
- `formatDebugInfo()` - Format debug information for developer inspection
|
|
173
|
+
- **TypeScript Types**: Comprehensive type definitions for sandbox functionality
|
|
174
|
+
- `Integration`, `Connector` - Integration and connector management
|
|
175
|
+
- `SandboxChatSession` - Session state tracking with persona/actor IDs
|
|
176
|
+
- `ChatDebugInfo` - Debug information structure for agent development
|
|
177
|
+
- `CreateSandboxPersonaRequest/Response` - Persona creation types
|
|
178
|
+
- `CreateActorRequest/Response` - Actor creation types
|
|
179
|
+
- `SendChatMessageRequest` - Chat message sending types
|
|
180
|
+
- **Enhanced Authentication**: Quiet mode support to suppress logging during automated testing
|
|
181
|
+
- **Documentation**: Comprehensive sandbox testing section with usage examples and automation patterns
|
|
182
|
+
|
|
183
|
+
### Changed
|
|
184
|
+
|
|
185
|
+
- **CLI Architecture**: Added sandbox command routing in main CLI module
|
|
186
|
+
- **API Module**: Extended with sandbox-specific endpoint integrations
|
|
187
|
+
- **Help Command**: Updated with sandbox command reference
|
|
188
|
+
- **README**: Added extensive sandbox testing documentation with multi-turn examples (+101 lines)
|
|
189
|
+
|
|
190
|
+
### Technical Details
|
|
191
|
+
|
|
192
|
+
- **Message Filtering**: Timestamp-based filtering ensures only new messages shown after user sends message
|
|
193
|
+
- **Session Isolation**: Each sandbox test creates unique persona with GUID to prevent state interference
|
|
194
|
+
- **Polling Strategy**: 1-second intervals with 60-second max wait for agent responses
|
|
195
|
+
- **Error Handling**: Graceful degradation with timeout messages and continuation guidance
|
|
196
|
+
- **Debug Modes**: Standard (condensed) and verbose (detailed) debug information display
|
|
197
|
+
- **Quiet Mode**: Minimal output perfect for shell scripts and CI/CD integration
|
|
198
|
+
|
|
199
|
+
### Example Usage
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Start new conversation
|
|
203
|
+
newo sandbox "Hello, I want to order pizza"
|
|
204
|
+
|
|
205
|
+
# Continue conversation with actor ID from previous response
|
|
206
|
+
newo sandbox --actor abc123... "I want 2 large pepperoni pizzas"
|
|
207
|
+
|
|
208
|
+
# Verbose mode for debugging
|
|
209
|
+
newo sandbox "Test message" --verbose
|
|
210
|
+
|
|
211
|
+
# Quiet mode for automation
|
|
212
|
+
newo sandbox "Test query" --quiet
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## [3.0.0] - 2025-09-29
|
|
216
|
+
|
|
217
|
+
### Added
|
|
218
|
+
|
|
219
|
+
- **Entity Creation Commands**: 12 new commands for creating NEWO entities locally
|
|
220
|
+
- `newo create-project <idn>` - Create new projects on platform
|
|
221
|
+
- `newo create-persona <name>` - Create agent personas
|
|
222
|
+
- `newo create-attribute <idn>` - Create customer attributes
|
|
223
|
+
- `newo create-agent <idn> --project <pid>` - Create agents locally with metadata
|
|
224
|
+
- `newo create-flow <idn> --agent <aid>` - Create flows with guidance/NSL runner selection
|
|
225
|
+
- `newo create-skill <idn> --flow <fid>` - Create skills with script content initialization
|
|
226
|
+
- `newo create-event <idn> --flow <fid>` - Create flow events for integrations
|
|
227
|
+
- `newo create-state <idn> --flow <fid>` - Create flow state fields (user/flow/global scope)
|
|
228
|
+
- `newo create-parameter <name> --skill <sid>` - Create skill parameters
|
|
229
|
+
- **Entity Deletion Commands**: 3 new commands with confirmation flags
|
|
230
|
+
- `newo delete-agent <aid> --confirm` - Delete agent locally
|
|
231
|
+
- `newo delete-flow <fid> --confirm` - Delete flow locally
|
|
232
|
+
- `newo delete-skill <sid> --confirm` - Delete skill locally
|
|
233
|
+
- **API Integrations**: 19 new endpoints for entity creation, deletion, and publishing
|
|
234
|
+
- **Documentation**: Entity Management Commands section with workflows and examples (+146 lines)
|
|
235
|
+
- **TypeScript Types**: 19 new type definitions for entity operations
|
|
236
|
+
|
|
237
|
+
### Changed
|
|
238
|
+
|
|
239
|
+
- **Push Command**: Now automatically detects and creates local-only entities on platform
|
|
240
|
+
- Filesystem scanning for entities not yet in project map
|
|
241
|
+
- Creates missing entities in correct hierarchical order (agent → flow → skill)
|
|
242
|
+
- Publishes flows after creation
|
|
243
|
+
- **Status Command**: Enhanced with comprehensive change detection
|
|
244
|
+
- Scans for local-only entities not yet on platform
|
|
245
|
+
- Reports new agents/flows/skills awaiting sync
|
|
246
|
+
- Hierarchical display of project structure
|
|
247
|
+
- **Architecture**: Added 14 new command modules in src/cli/commands/
|
|
248
|
+
- **Push Module**: Enhanced with local-only entity scanning (~418 lines)
|
|
249
|
+
- **Status Module**: Enhanced with entity detection (~184 lines)
|
|
250
|
+
|
|
251
|
+
## [2.0.6] - 2025-09-18
|
|
252
|
+
|
|
253
|
+
### Changed
|
|
254
|
+
|
|
255
|
+
- Implement proper LCS-based diff algorithm for accurate change detection
|
|
256
|
+
- Clean, accurate differences with proper line matching
|
|
257
|
+
- Improved algorithm eliminates false positives and shows precise modifications
|
|
258
|
+
|
|
259
|
+
## [2.0.5] - 2025-09-18
|
|
260
|
+
|
|
261
|
+
### Fixed
|
|
262
|
+
|
|
263
|
+
- Correct diff algorithm to show clean, accurate differences
|
|
264
|
+
- Improved change detection with proper context preservation
|
|
265
|
+
|
|
266
|
+
## [2.0.4] - 2025-09-18
|
|
267
|
+
|
|
268
|
+
### Changed
|
|
269
|
+
|
|
270
|
+
- Implement exact GitHub diff format with proper context lines
|
|
271
|
+
- GitHub-style diff with background colors and context
|
|
272
|
+
- Enhanced diff display with line numbers and clearer messaging
|
|
273
|
+
|
|
274
|
+
## [2.0.3] - 2025-09-18
|
|
275
|
+
|
|
276
|
+
### Changed
|
|
277
|
+
|
|
278
|
+
- Improve diff display with line numbers and clearer messaging
|
|
279
|
+
- Better visual distinction for changes with colored output
|
|
280
|
+
|
|
281
|
+
## [2.0.2] - 2025-09-18
|
|
282
|
+
|
|
283
|
+
### Added
|
|
284
|
+
|
|
285
|
+
- GitHub-style colored diff display for overwrite prompts
|
|
286
|
+
- Enhanced diff visualization with colors and formatting
|
|
287
|
+
|
|
288
|
+
## [2.0.1] - 2025-09-18
|
|
289
|
+
|
|
290
|
+
### Fixed
|
|
291
|
+
|
|
292
|
+
- Improve overwrite handling with proper 'all' option support
|
|
293
|
+
- Better handling of batch overwrite operations
|
|
131
294
|
|
|
132
295
|
## [1.9.3] - 2025-09-17
|
|
133
296
|
|
|
134
|
-
###
|
|
297
|
+
### Changed
|
|
135
298
|
|
|
136
|
-
**CLI Module Restructuring:**
|
|
137
299
|
- **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
|
|
300
|
+
- Split monolithic 500+ line `cli.ts` into focused modules
|
|
139
301
|
- `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:
|
|
302
|
+
- `cli/errors.ts` - Centralized error handling
|
|
303
|
+
- `cli/customer-selection.ts` - Customer management logic
|
|
304
|
+
- `cli/commands/` - Individual command handlers
|
|
305
|
+
- Extracted key functions from 1400+ line `sync.ts` into focused modules
|
|
146
306
|
- `sync/attributes.ts` - Customer attributes synchronization
|
|
147
307
|
- `sync/conversations.ts` - Conversation history management
|
|
148
308
|
- `sync/status.ts` - File status checking and change detection
|
|
149
309
|
- `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
310
|
- Updated CLAUDE.md with new modular architecture documentation
|
|
165
|
-
- Added comprehensive module descriptions and benefits
|
|
166
|
-
- Updated development patterns for the new structure
|
|
167
|
-
|
|
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
311
|
|
|
177
|
-
###
|
|
312
|
+
### Fixed
|
|
178
313
|
|
|
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
|
|
314
|
+
- Test imports to use compiled JavaScript from `dist/` directory
|
|
315
|
+
- Test utilities converted from CommonJS to ES modules
|
|
316
|
+
- Improved test isolation and ES module compatibility
|
|
184
317
|
|
|
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
|
|
318
|
+
## [2.0.0] - 2025-09-17
|
|
194
319
|
|
|
195
|
-
###
|
|
320
|
+
### Added
|
|
196
321
|
|
|
197
|
-
|
|
322
|
+
- IDN-based skill file naming for easy identification
|
|
198
323
|
- Real-time progress display during large operations (966+ skills)
|
|
199
324
|
- Percentage completion with skill counts
|
|
200
|
-
-
|
|
201
|
-
-
|
|
325
|
+
- Multiple file detection with clear warnings
|
|
326
|
+
- Force mode with `--force/-f` flag for silent operations
|
|
327
|
+
- Complete metadata.yaml hierarchy at all levels
|
|
328
|
+
|
|
329
|
+
### Changed
|
|
202
330
|
|
|
203
|
-
|
|
204
|
-
-
|
|
331
|
+
- **BREAKING**: Skills now saved as `{skillIdn}.jinja/.guidance` instead of `skill.jinja/.guidance`
|
|
332
|
+
- **BREAKING**: Existing files automatically renamed to IDN format during pull
|
|
333
|
+
- Refactored CLI module structure
|
|
334
|
+
- `src/cli.ts` (124 lines) - Clean main entry using modular imports
|
|
335
|
+
- `src/cli/errors.ts` - Centralized error management
|
|
336
|
+
- `src/cli/customer-selection.ts` - Reusable customer selection logic
|
|
337
|
+
- `src/cli/commands/` - Individual handlers for all commands
|
|
338
|
+
- Refactored sync module structure
|
|
339
|
+
- `src/sync.ts` (13 lines) - Unified exports with re-exports
|
|
340
|
+
- `src/sync/projects.ts` - Project sync with progress tracking
|
|
341
|
+
- `src/sync/push.ts` - File validation and upload
|
|
342
|
+
- `src/sync/status.ts` - Change detection with file validation
|
|
343
|
+
- `src/sync/attributes.ts` - Customer attributes synchronization
|
|
344
|
+
- `src/sync/conversations.ts` - Conversation history management
|
|
345
|
+
- `src/sync/metadata.ts` - flows.yaml generation (removed prompt_script)
|
|
346
|
+
- `src/sync/skill-files.ts` - IDN-based naming and validation
|
|
205
347
|
- Flexible file discovery (any .jinja/.guidance/.nsl file)
|
|
206
348
|
- Smart overwrite detection (content-based, not filename-based)
|
|
207
|
-
-
|
|
349
|
+
- Complete hash coverage for flows.yaml and attributes.yaml
|
|
350
|
+
- Zero TypeScript compilation errors with strict typing
|
|
351
|
+
- Modular loading with reduced memory footprint
|
|
208
352
|
|
|
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
|
|
353
|
+
### Fixed
|
|
214
354
|
|
|
215
|
-
|
|
355
|
+
- False positive change detection
|
|
356
|
+
- Status now shows "Clean." immediately after pull operations
|
|
357
|
+
- Safe push operations that skip problematic skills with multiple files
|
|
216
358
|
|
|
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
|
|
359
|
+
## [1.9.2] - 2025-09-16
|
|
222
360
|
|
|
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
|
|
361
|
+
### Added
|
|
228
362
|
|
|
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
|
|
363
|
+
- Max pages limit (50 pages = 5000 acts per persona) to prevent infinite pagination
|
|
364
|
+
- Verbose logging for pagination progress
|
|
247
365
|
|
|
248
|
-
|
|
366
|
+
### Changed
|
|
367
|
+
|
|
368
|
+
- Skip personas without newo_voice actors immediately for better performance
|
|
369
|
+
- Optimized control flow to prevent hanging during large conversation extraction
|
|
249
370
|
|
|
250
371
|
### 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
372
|
|
|
257
|
-
|
|
258
|
-
-
|
|
259
|
-
|
|
260
|
-
- Clear verbose logging for pagination progress
|
|
261
|
-
- Optimized control flow to prevent hanging during large conversation extraction
|
|
373
|
+
- Infinite loops during conversation processing
|
|
374
|
+
- Improved persona filtering for voice actors
|
|
375
|
+
- Graceful handling of personas without voice actors
|
|
262
376
|
|
|
263
377
|
## [1.9.1] - 2025-09-16
|
|
264
378
|
|
|
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
379
|
### Removed
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
380
|
+
|
|
381
|
+
- Conversations acts API fallback (eliminates 403 errors)
|
|
382
|
+
- `getConversationActs()` function (unused after chat history integration)
|
|
383
|
+
- `ConversationActsParams` and `ConversationActsResponse` interfaces
|
|
384
|
+
- Fallback logic that caused 403 errors for personas without proper permissions
|
|
385
|
+
|
|
386
|
+
### Changed
|
|
387
|
+
|
|
388
|
+
- Use only `/api/v1/chat/history` endpoint which works with current API keys
|
|
277
389
|
|
|
278
390
|
## [1.9.0] - 2025-09-16
|
|
279
391
|
|
|
280
392
|
### 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
393
|
|
|
289
|
-
|
|
290
|
-
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
### Technical
|
|
298
|
-
- **New API Functions**: Type-safe conversation API integration
|
|
394
|
+
- `newo conversations` command to download user conversations and personas
|
|
395
|
+
- Multi-customer conversation support with `--customer <idn>` flag
|
|
396
|
+
- Chat History API integration (`/api/v1/chat/history`) with fallback support
|
|
397
|
+
- Automatic phone number extraction from persona actors
|
|
398
|
+
- Comprehensive pagination handling for large conversation datasets
|
|
399
|
+
- Clean YAML output format in `newo_customers/{customerIdn}/conversations.yaml`
|
|
400
|
+
- Type-safe conversation API integration
|
|
299
401
|
- `listUserPersonas()` - Get all user personas with pagination
|
|
300
402
|
- `getChatHistory()` - Get conversation history for user actors
|
|
301
403
|
- `getConversationActs()` - Fallback for accounts with proper permissions
|
|
302
404
|
- `pullConversations()` - Complete conversation sync orchestration
|
|
303
|
-
-
|
|
304
|
-
|
|
305
|
-
|
|
405
|
+
- NPM scripts: `npm run conversations` and `npm run conversations:all`
|
|
406
|
+
|
|
407
|
+
### Changed
|
|
408
|
+
|
|
409
|
+
- Acts sorted by datetime ascending (chronological conversation flow)
|
|
410
|
+
- Personas sorted by most recent activity (descending)
|
|
411
|
+
- Clean persona structure: `id` → `name` → `phone` → `act_count` → `acts`
|
|
412
|
+
- Parallel API calls with concurrency limiting (p-limit)
|
|
413
|
+
- Graceful error handling with persona-level fault tolerance
|
|
306
414
|
|
|
307
|
-
###
|
|
308
|
-
|
|
309
|
-
|
|
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
|
|
415
|
+
### Removed
|
|
416
|
+
|
|
417
|
+
- Redundant fields (`is_agent`, `session_id: unknown`, etc.)
|
|
313
418
|
|
|
314
419
|
## [1.8.0] - 2025-09-15
|
|
315
420
|
|
|
316
421
|
### 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
422
|
|
|
324
|
-
|
|
325
|
-
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
-
|
|
334
|
-
-
|
|
335
|
-
-
|
|
336
|
-
-
|
|
337
|
-
-
|
|
423
|
+
- Complete metadata.yaml file synchronization with hash-based change detection
|
|
424
|
+
- Status command shows detailed metadata changes (title, runner_type, model)
|
|
425
|
+
- Push command automatically updates skills when metadata changes
|
|
426
|
+
- Automatic flows.yaml regeneration when metadata changes detected
|
|
427
|
+
- flows.yaml backup/comparison system for format preservation
|
|
428
|
+
|
|
429
|
+
### Changed
|
|
430
|
+
|
|
431
|
+
- All NEWO workspace files fully tracked
|
|
432
|
+
- Skills: .guidance and .jinja script files with hash tracking
|
|
433
|
+
- Metadata: metadata.yaml files with skill updates + flows.yaml regeneration
|
|
434
|
+
- Attributes: attributes.yaml with diff-based sync for 233 customer attributes
|
|
435
|
+
- Flows: flows.yaml with automatic regeneration and format preservation
|
|
436
|
+
- Multi-customer: All file types synchronized across multiple customer workspaces
|
|
437
|
+
- Automatic regeneration pipeline creates backup before regeneration
|
|
438
|
+
- Re-fetches project data to ensure accuracy
|
|
439
|
+
- Maintains consistent YAML format structure
|
|
338
440
|
|
|
339
441
|
## [1.7.3] - 2025-09-15
|
|
340
442
|
|
|
341
443
|
### 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
444
|
|
|
348
|
-
|
|
349
|
-
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
445
|
+
- Full hash-based change detection for customer attributes
|
|
446
|
+
- Attributes.yaml files included in hash tracking during pull operations
|
|
447
|
+
- Status command detects and reports modifications to attributes.yaml files
|
|
448
|
+
- Push command handles attributes changes with proper synchronization
|
|
449
|
+
|
|
450
|
+
### Changed
|
|
451
|
+
|
|
452
|
+
- Extended file synchronization scope to all NEWO workspace file types
|
|
453
|
+
- Skills: .guidance and .jinja files with full hash tracking
|
|
454
|
+
- Attributes: customer attributes.yaml with change detection
|
|
455
|
+
- Metadata: flows.yaml and metadata.yaml files tracked
|
|
456
|
+
- Multi-customer: all file types synchronized across multiple customers
|
|
354
457
|
|
|
355
458
|
## [1.7.2] - 2025-09-15
|
|
356
459
|
|
|
460
|
+
### Added
|
|
461
|
+
|
|
462
|
+
- `attributes.yaml` file tracking with modification times and sizes
|
|
463
|
+
- `flows.yaml` file tracking and statistics
|
|
464
|
+
- Comprehensive file monitoring across entire project structure
|
|
465
|
+
|
|
357
466
|
### 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
467
|
|
|
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
|
|
468
|
+
- Attributes push check error with `!enum` format
|
|
469
|
+
- Changed from YAML parsing to file stats for change detection
|
|
470
|
+
- Prevents parsing errors with custom enum format in attributes.yaml
|
|
369
471
|
|
|
370
472
|
## [1.7.1] - 2025-09-15
|
|
371
473
|
|
|
372
|
-
###
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
474
|
+
### Changed
|
|
475
|
+
|
|
476
|
+
- `newo status` now automatically checks all customers when no default is specified
|
|
477
|
+
- `newo push` provides interactive customer selection dialog when multiple customers exist
|
|
478
|
+
- Moved customer selection logic into command-specific handlers
|
|
479
|
+
- Each command now handles customer selection appropriately
|
|
378
480
|
|
|
379
481
|
### Fixed
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
- Maintains backward compatibility with single-customer setups
|
|
482
|
+
|
|
483
|
+
- Early exit errors for multi-customer operations
|
|
484
|
+
- Maintains backward compatibility with single-customer setups
|
|
384
485
|
|
|
385
486
|
## [1.7.0] - 2025-09-15
|
|
386
487
|
|
|
387
488
|
### 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
489
|
|
|
397
|
-
|
|
398
|
-
-
|
|
490
|
+
- Complete pull/push functionality for customer attributes
|
|
491
|
+
- `GET /api/v1/bff/customer/attributes?include_hidden=true` endpoint integration (fetches 233 attributes)
|
|
492
|
+
- `PUT /api/v1/customer/attributes/{attributeId}` endpoint integration
|
|
493
|
+
- Saves to `newo_customers/{customerIdn}/attributes.yaml` in customer root directory
|
|
494
|
+
- YAML format with literal blocks, enum types, and proper multi-line formatting
|
|
495
|
+
- Separate ID mapping in `.newo/{customerIdn}/attributes-map.json` for push operations
|
|
496
|
+
- Full TypeScript type safety with `CustomerAttribute` and `CustomerAttributesResponse` interfaces
|
|
497
|
+
- API layer functions: `updateCustomerAttribute()` and enhanced `getCustomerAttributes()`
|
|
498
|
+
- File system utilities: `customerAttributesPath()` and `customerAttributesMapPath()`
|
|
499
|
+
|
|
500
|
+
### Changed
|
|
501
|
+
|
|
502
|
+
- Integrated attributes handling into existing `pull` and `push` commands
|
|
503
|
+
- YAML format compliance with reference specification
|
|
399
504
|
- Literal block scalars (`|-`) for multi-line strings
|
|
400
505
|
- Proper enum format (`!enum "AttributeValueTypes.string"`)
|
|
401
506
|
- 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
|
|
507
|
+
- No escaped quotes in output
|
|
508
|
+
|
|
509
|
+
### Removed
|
|
510
|
+
|
|
511
|
+
- Legacy JSON metadata files (YAML-only approach)
|
|
512
|
+
- Redundant `metadata.json` files
|
|
414
513
|
|
|
415
514
|
## [1.6.1] - 2025-09-13
|
|
416
515
|
|
|
516
|
+
### Added
|
|
517
|
+
|
|
518
|
+
- `"type": "module"` to package.json for proper ES module handling
|
|
519
|
+
|
|
417
520
|
### 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
521
|
|
|
423
|
-
|
|
424
|
-
-
|
|
425
|
-
|
|
426
|
-
- Improves performance by eliminating module type guessing
|
|
427
|
-
- Ensures consistent ES module behavior across all environments
|
|
522
|
+
- Enum formatting in `flows.yaml` generation for NEWO enum types
|
|
523
|
+
- Enum value serialization from quoted strings to proper YAML enum format
|
|
524
|
+
- Issue where enum values like `!enum "RunnerType.guidance"` were incorrectly quoted
|
|
428
525
|
|
|
429
526
|
## [1.6.0] - 2025-09-13
|
|
430
527
|
|
|
@@ -476,7 +573,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
476
573
|
- **Professional Infrastructure**: Industry-standard publishing pipeline with version management
|
|
477
574
|
- **Quality Gates**: Automated validation before publishing (TypeScript, linting, building, package validation)
|
|
478
575
|
|
|
479
|
-
## [1.5.2] - 2025-
|
|
576
|
+
## [1.5.2] - 2025-09-04
|
|
480
577
|
|
|
481
578
|
### Enhanced
|
|
482
579
|
- **Documentation Overhaul**: Complete README restructuring with professional presentation
|
|
@@ -506,7 +603,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
506
603
|
- **Clear Navigation**: Improved documentation structure with proper sectioning and examples
|
|
507
604
|
- **Enhanced Onboarding**: Comprehensive quick-start guide and configuration examples
|
|
508
605
|
|
|
509
|
-
## [1.5.1] - 2025-
|
|
606
|
+
## [1.5.1] - 2025-09-03
|
|
510
607
|
|
|
511
608
|
### Added
|
|
512
609
|
- **Comprehensive Test Coverage**: Added extensive test suites for all major modules
|
|
@@ -729,10 +826,41 @@ Another Item: $Price [Modifiers: modifier3]
|
|
|
729
826
|
## [1.2.1] - Previous Release
|
|
730
827
|
|
|
731
828
|
### Added
|
|
829
|
+
|
|
732
830
|
- Initial NEWO CLI functionality
|
|
733
831
|
- Two-way sync between NEWO platform and local files
|
|
734
832
|
- Support for .guidance and .jinja file types
|
|
735
833
|
- SHA256-based change detection
|
|
736
834
|
- Project structure export to flows.yaml
|
|
737
835
|
- GitHub Actions CI/CD integration
|
|
738
|
-
- Robust authentication with token refresh
|
|
836
|
+
- Robust authentication with token refresh
|
|
837
|
+
|
|
838
|
+
[Unreleased]: https://github.com/sabbah13/newo-cli/compare/v3.2.0...HEAD
|
|
839
|
+
[3.2.0]: https://github.com/sabbah13/newo-cli/compare/v3.1.0...v3.2.0
|
|
840
|
+
[3.1.0]: https://github.com/sabbah13/newo-cli/compare/v3.0.0...v3.1.0
|
|
841
|
+
[3.0.0]: https://github.com/sabbah13/newo-cli/compare/v2.0.6...v3.0.0
|
|
842
|
+
[2.0.6]: https://github.com/sabbah13/newo-cli/compare/v2.0.5...v2.0.6
|
|
843
|
+
[2.0.5]: https://github.com/sabbah13/newo-cli/compare/v2.0.4...v2.0.5
|
|
844
|
+
[2.0.4]: https://github.com/sabbah13/newo-cli/compare/v2.0.3...v2.0.4
|
|
845
|
+
[2.0.3]: https://github.com/sabbah13/newo-cli/compare/v2.0.2...v2.0.3
|
|
846
|
+
[2.0.2]: https://github.com/sabbah13/newo-cli/compare/v2.0.1...v2.0.2
|
|
847
|
+
[2.0.1]: https://github.com/sabbah13/newo-cli/compare/v2.0.0...v2.0.1
|
|
848
|
+
[2.0.0]: https://github.com/sabbah13/newo-cli/compare/v1.8.0...v2.0.0
|
|
849
|
+
[1.9.3]: https://github.com/sabbah13/newo-cli/compare/v1.9.2...v1.9.3
|
|
850
|
+
[1.9.2]: https://github.com/sabbah13/newo-cli/compare/v1.9.1...v1.9.2
|
|
851
|
+
[1.9.1]: https://github.com/sabbah13/newo-cli/compare/v1.9.0...v1.9.1
|
|
852
|
+
[1.9.0]: https://github.com/sabbah13/newo-cli/compare/v1.8.0...v1.9.0
|
|
853
|
+
[1.8.0]: https://github.com/sabbah13/newo-cli/compare/v1.7.0...v1.8.0
|
|
854
|
+
[1.7.3]: https://github.com/sabbah13/newo-cli/compare/v1.7.2...v1.7.3
|
|
855
|
+
[1.7.2]: https://github.com/sabbah13/newo-cli/compare/v1.7.1...v1.7.2
|
|
856
|
+
[1.7.1]: https://github.com/sabbah13/newo-cli/compare/v1.7.0...v1.7.1
|
|
857
|
+
[1.7.0]: https://github.com/sabbah13/newo-cli/compare/v1.6.1...v1.7.0
|
|
858
|
+
[1.6.1]: https://github.com/sabbah13/newo-cli/compare/v1.6.0...v1.6.1
|
|
859
|
+
[1.6.0]: https://github.com/sabbah13/newo-cli/compare/v1.5.1...v1.6.0
|
|
860
|
+
[1.5.2]: https://github.com/sabbah13/newo-cli/compare/v1.5.1...v1.5.2
|
|
861
|
+
[1.5.1]: https://github.com/sabbah13/newo-cli/compare/v1.5.0...v1.5.1
|
|
862
|
+
[1.5.0]: https://github.com/sabbah13/newo-cli/compare/v1.4.0...v1.5.0
|
|
863
|
+
[1.4.0]: https://github.com/sabbah13/newo-cli/compare/v1.2.1...v1.4.0
|
|
864
|
+
[1.3.0]: https://github.com/sabbah13/newo-cli/compare/v1.2.1...v1.3.0
|
|
865
|
+
[1.2.2]: https://github.com/sabbah13/newo-cli/compare/v1.2.1...v1.2.2
|
|
866
|
+
[1.2.1]: https://github.com/sabbah13/newo-cli/releases/tag/v1.2.1
|