newo 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,70 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.6.1] - 2025-09-13
9
+
10
+ ### Fixed
11
+ - **YAML Enum Formatting**: Fixed enum formatting in `flows.yaml` generation to properly handle NEWO enum types
12
+ - Corrected enum value serialization from quoted strings to proper YAML enum format
13
+ - Fixed issue where enum values like `!enum "RunnerType.guidance"` were incorrectly quoted
14
+ - Ensures generated `flows.yaml` files are properly formatted for NEWO platform consumption
15
+
16
+ ### Enhanced
17
+ - **ES Module Support**: Added `"type": "module"` to package.json for proper ES module handling
18
+ - Resolves Node.js warnings about module type detection
19
+ - Improves performance by eliminating module type guessing
20
+ - Ensures consistent ES module behavior across all environments
21
+
22
+ ## [1.6.0] - 2025-09-13
23
+
24
+ ### Added
25
+ - **Multi-Customer Auto-Pull**: Revolutionary workflow improvement for multi-customer environments
26
+ - `newo pull` now automatically pulls from ALL customers when no default customer is set
27
+ - Eliminates the need to specify `--customer` flag or set `NEWO_DEFAULT_CUSTOMER` for bulk operations
28
+ - Maintains backward compatibility - individual customer selection still works with `--customer` flag
29
+ - Smart detection: single customer setup works as before, multi-customer setup auto-pulls all
30
+ - **Publishing Infrastructure**: Complete automated publishing system for professional releases
31
+ - `scripts/publish-github.sh`: Automated GitHub publishing with releases, tags, and version management
32
+ - `scripts/publish-npm.sh`: Automated NPM publishing with validation and safety checks
33
+ - Comprehensive Makefile with 40+ commands for development and publishing workflows
34
+ - Version bump helpers (patch/minor/major) with semantic versioning support
35
+ - **Enhanced Documentation**: Professional publishing and development documentation
36
+ - Complete "Publishing & Release Management" section with step-by-step workflows
37
+ - "Local Testing" section with comprehensive testing procedures
38
+ - Makefile command reference with organized development workflows
39
+ - Troubleshooting guides for common development and publishing issues
40
+
41
+ ### Enhanced
42
+ - **Customer Configuration Logic**: New functions for flexible customer handling
43
+ - `tryGetDefaultCustomer()`: Non-throwing version that returns null for multi-customer scenarios
44
+ - `getAllCustomers()`: Returns array of all configured customers for batch operations
45
+ - Improved error handling and user feedback for customer selection scenarios
46
+ - **CLI User Experience**: Enhanced command behavior and help documentation
47
+ - Updated help text to reflect auto-pull behavior: "uses default or all for pull"
48
+ - Clear progress indicators for multi-customer operations
49
+ - Better error messages and troubleshooting guidance
50
+ - **Development Workflow**: Professional development and publishing infrastructure
51
+ - Makefile with color-coded output and comprehensive command organization
52
+ - Automated validation pipelines for publishing (build, test, lint, typecheck)
53
+ - Publishing scripts with safety checks and rollback procedures
54
+
55
+ ### Changed
56
+ - **Pull Command Behavior**: Breaking change in multi-customer environments (improvement)
57
+ - Previously: Required explicit customer selection or default customer configuration
58
+ - Now: Automatically pulls from all customers when no default is set
59
+ - Single customer setups: No change in behavior
60
+ - Multi-customer setups: Significantly improved user experience
61
+ - **Help Documentation**: Updated command descriptions and examples
62
+ - `newo pull` now shows "(all customers if no default)" in help text
63
+ - Enhanced multi-customer examples with auto-pull scenarios
64
+ - Updated usage patterns to reflect new workflow capabilities
65
+
66
+ ### Developer Experience
67
+ - **Publishing Automation**: One-command publishing to both GitHub and NPM with full validation
68
+ - **Comprehensive Testing**: Enhanced local testing documentation with step-by-step procedures
69
+ - **Professional Infrastructure**: Industry-standard publishing pipeline with version management
70
+ - **Quality Gates**: Automated validation before publishing (TypeScript, linting, building, package validation)
71
+
8
72
  ## [1.5.2] - 2025-01-15
9
73
 
10
74
  ### Enhanced
package/README.md CHANGED
@@ -25,7 +25,7 @@ Mirror NEWO "Project → Agent → Flow → Skills" structure to local files wit
25
25
 
26
26
  **Option 1: Global Installation (Recommended)**
27
27
  ```bash
28
- npm install -g newo
28
+ npm install -g newo@latest
29
29
  ```
30
30
 
31
31
  **Option 2: Local Project Installation**
package/dist/sync.js CHANGED
@@ -368,7 +368,7 @@ async function generateFlowsYaml(client, customer, agents, verbose = false) {
368
368
  forceQuotes: false
369
369
  });
370
370
  // Post-process to fix enum formatting
371
- yamlContent = yamlContent.replace(/"(!enum "[^"]+")"/g, '$1');
371
+ yamlContent = yamlContent.replace(/"(!enum \\"([^"]+)\\")"/g, '!enum "$2"');
372
372
  const yamlPath = flowsYamlPath(customer.idn);
373
373
  await writeFileSafe(yamlPath, yamlContent);
374
374
  console.log(`✓ Generated flows.yaml`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "newo",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "NEWO CLI: sync AI Agent skills between NEWO platform and local files. Multi-customer workspaces, Git-first workflows, comprehensive project management.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/sync.ts CHANGED
@@ -439,7 +439,7 @@ async function generateFlowsYaml(
439
439
  });
440
440
 
441
441
  // Post-process to fix enum formatting
442
- yamlContent = yamlContent.replace(/"(!enum "[^"]+")"/g, '$1');
442
+ yamlContent = yamlContent.replace(/"(!enum \\"([^"]+)\\")"/g, '!enum "$2"');
443
443
 
444
444
  const yamlPath = flowsYamlPath(customer.idn);
445
445
  await writeFileSafe(yamlPath, yamlContent);