Skip to content

Conversation

@mkesavan13
Copy link
Contributor

COMPLETES AdHoc

This pull request addresses

As per internal discussions, it is highlighted that this contains some code that can be public but the copyrights should still be with Cisco.

by making the following changes

Changed License in package.json from MIT to Cisco EULA

Change Type

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Tooling change
  • Internal code refactor

The following scenarios were tested

NA

The GAI Coding Policy And Copyright Annotation Best Practices

  • GAI was not used (or, no additional notation is required)
  • Code was generated entirely by GAI
  • GAI was used to create a draft that was subsequently customized or modified
  • Coder created a draft manually that was non-substantively modified by GAI (e.g., refactoring was performed by GAI on manually written code)
  • Tool used for AI assistance (GitHub Copilot / Other - specify)
    • Github Copilot
    • Other - Please Specify
  • This PR is related to
    • Feature
    • Defect fix
    • Tech Debt
    • Automation

I certified that

  • I have read and followed contributing guidelines
  • I discussed changes with code owners prior to submitting this pull request
  • I have not skipped any automated checks
  • All existing and new tests passed
  • I have updated the documentation accordingly

Make sure to have followed the contributing guidelines before submitting.

@mkesavan13 mkesavan13 requested a review from a team as a code owner August 12, 2025 12:12
@aws-amplify-us-east-2
Copy link

This pull request is automatically being deployed by Amplify Hosting (learn more).

Access this pull request here: https://pr-4433.d3m3l2kee0btzx.amplifyapp.com

@mkesavan13 mkesavan13 requested a review from a team as a code owner August 12, 2025 16:20
@mkesavan13 mkesavan13 changed the title fix(plugin-cc): update license as Cisco EULA fix: rename Cisco EULA to General terms Aug 12, 2025
@mkesavan13 mkesavan13 added the validated If the pull request is validated for automation. label Aug 12, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 12, 2025

📝 Walkthrough

Walkthrough

This PR updates the license field in multiple package.json files. The root package.json and these packages change their license value to “Cisco’s General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)”: @webex/internal-plugin-llm, @webex/internal-plugin-voicea, @webex/media-helpers, @webex/plugin-meetings, and packages/webex. Additionally, @webex/plugin-cc changes its license from “MIT” to “Cisco’s General Terms.” No other fields, code, dependencies, scripts, or behavior are modified.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (3)
packages/@webex/media-helpers/package.json (1)

4-4: Standardize license metadata to a publish-safe format.

Same as other packages: prefer an SPDX identifier, "UNLICENSED", or "SEE LICENSE IN " over a prose string with a URL.

Proposed change:

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE"

Ensure a LICENSE file with the approved Cisco terms is present in this package directory and included in the published artifact.

packages/@webex/internal-plugin-voicea/package.json (1)

4-4: Align with npm’s license field conventions.

Avoid embedding URLs in the license value; use "SEE LICENSE IN LICENSE" (with a checked-in LICENSE file) or "UNLICENSED" as directed by Legal.

Suggested change:

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE"
packages/@webex/plugin-meetings/package.json (1)

4-4: Align with SPDX-friendly practice: prefer "SEE LICENSE IN LICENSE" and ship the LICENSE file.

Same note as for other packages: a non-SPDX string will cause license tooling friction. Recommend switching to the “SEE LICENSE IN” pattern and adding a LICENSE file in this package directory that references Cisco’s General Terms (or includes the applicable text).

  • Consider calling this out in release notes (legal change can impact consumers).
  • If this package is published to npm, ensure the LICENSE file is included in the published tarball (npm will include LICENSE by default if present).

Proposed change:

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE",

If helpful, I can generate a standard LICENSE file for all touched packages and a small script to validate inclusion during packing.

🧹 Nitpick comments (1)
package.json (1)

20-20: Root metadata: prefer a license file + SEE LICENSE IN for clarity and tool compatibility.

Even though the root is private, GitHub license detection and internal tooling work best with a LICENSE file and a compliant license field.

Recommended:

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE"

Also ensure a LICENSE file exists at the repo root with the current Cisco General Terms or the approved notice, and that downstream packages reference their own LICENSE if they differ.

To ensure consistency across the monorepo, run the script provided in the plugin-cc comment; it will flag any remaining URL-based license values and missing LICENSE files.

📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 10e655e and f5daffe.

📒 Files selected for processing (7)
  • package.json (1 hunks)
  • packages/@webex/internal-plugin-llm/package.json (1 hunks)
  • packages/@webex/internal-plugin-voicea/package.json (1 hunks)
  • packages/@webex/media-helpers/package.json (1 hunks)
  • packages/@webex/plugin-cc/package.json (1 hunks)
  • packages/@webex/plugin-meetings/package.json (1 hunks)
  • packages/webex/package.json (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-05-13T17:01:05.340Z
Learnt from: Kesari3008
PR: webex/webex-js-sdk#4258
File: packages/@webex/plugin-cc/src/webex.js:0-0
Timestamp: 2025-05-13T17:01:05.340Z
Learning: In the webex-js-sdk project, `PACKAGE_VERSION` is a constant that's injected by the build system and doesn't need to be explicitly imported in the source files.

Applied to files:

  • packages/@webex/media-helpers/package.json
  • package.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build Packages

"name": "@webex/internal-plugin-llm",
"description": "",
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
"license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Use npm-compliant license metadata ("SEE LICENSE IN") and include a LICENSE file.

Non-SPDX strings in the "license" field often trigger npm/yarn warnings and break license scanners. For proprietary or non-SPDX terms, the recommended pattern is:

  • Set license to "SEE LICENSE IN "
  • Check in a LICENSE (or LICENSE.md) file in this package directory containing the applicable Cisco terms or a clear reference to the URL.

This keeps consumers’ compliance tools happy and avoids “UNKNOWN” license flags.

Proposed change (only this line):

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE",

If you want, I can generate the LICENSE file contents referencing Cisco’s General Terms and open a follow-up PR to add it across all affected packages. To verify consistency and link health across the repo, you can run:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) List all packages and their license values:"
fd -a -t f package.json | sort | while read -r f; do
  lic=$(jq -r '.license // empty' "$f" 2>/dev/null || true)
  echo "$f => ${lic:-<no license field>}"
done

echo
echo "2) Check for LICENSE files next to package.json when using 'SEE LICENSE IN':"
fd -a -t f package.json | while read -r f; do
  dir=$(dirname "$f")
  lic=$(jq -r '.license // empty' "$f" 2>/dev/null || true)
  if [[ "$lic" =~ ^SEE\ LICENSE\ IN ]]; then
    name=$(echo "$lic" | sed -E 's/^SEE LICENSE IN[[:space:]]+//')
    # Try several common locations
    if [[ -f "$dir/$name" || -f "$dir/LICENSE" || -f "$dir/LICENSE.md" || -f "$dir/LICENCE" || -f "$dir/LICENCE.md" ]]; then
      echo "OK: $dir has license file ($name or standard)"
    else
      echo "MISSING: $dir lacks $name (or LICENSE/LICENCE) file"
    fi
  fi
done

echo
echo "3) Validate Cisco General Terms URLs (HTTP status should be 200 or 3xx):"
fd -a -t f package.json | while read -r f; do
  url=$(jq -r '.license // empty' "$f" | grep -o 'https\?://[^)]*' || true)
  if [[ -n "$url" ]]; then
    code=$(curl -s -o /dev/null -w "%{http_code}" "$url" || true)
    echo "$f => $url => HTTP $code"
  fi
done

Length of output: 75702


Update license field and include LICENSE file for internal-plugin-llm

Replace the non-SPDX license string in packages/@webex/internal-plugin-llm/package.json and add a LICENSE file:

• packages/@webex/internal-plugin-llm/package.json (line 4): update license metadata
• packages/@webex/internal-plugin-llm/LICENSE: add file with Cisco’s General Terms or reference URL

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE",

Verified the Cisco URL returns HTTP 200. Similar updates will be needed for other packages using “Cisco’s General Terms” (plugin-voicea, media-helpers, plugin-cc, plugin-meetings, webex). I can help generate the LICENSE contents and open a follow-up PR across all affected packages.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
"license": "SEE LICENSE IN LICENSE",
🤖 Prompt for AI Agents
In packages/@webex/internal-plugin-llm/package.json around line 4, replace the
non‑SPDX license string with a SPDX-compatible pointer (e.g., "license": "SEE
LICENSE IN LICENSE") and add a new packages/@webex/internal-plugin-llm/LICENSE
file containing Cisco’s General Terms or a short header that references the
verified Cisco URL; ensure the package.json license field exactly matches the
LICENSE filename and that the LICENSE file includes the URL and any required
attribution text.

"name": "@webex/plugin-cc",
"description": "This package provides a set of APIs to perform various operations for the Agent flow within Webex Contact Center",
"license": "MIT",
"license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Use an npm-compliant license value (avoid free-form strings with URLs).

npm expects either an SPDX identifier, "UNLICENSED", or "SEE LICENSE IN ". A free-form string with a URL will trigger warnings and can break license scanners and compliance tooling, especially if this package is published.

Apply this change to align with npm guidance and make the license auditable:

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE"

Follow-ups:

  • Add the LICENSE file with the Cisco General Terms/EULA text (or the approved notice) to this package directory and ensure it’s included in the published tarball.
  • If Legal prefers “UNLICENSED” for EULA-governed modules, use "license": "UNLICENSED" instead, and still include a LICENSE (or NOTICE) file.

Run this repository-wide check to see all license values and any missing LICENSE files:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "License values (path,license):"
fd -a package.json | while read -r f; do
  lic=$(jq -r '.license // "N/A"' "$f" 2>/dev/null || echo "N/A")
  echo "$f,$lic"
done | sort

echo
echo "Packages with non-standard license values (contain http/URL or Cisco strings):"
fd -a package.json | xargs -I{} awk -F: '/"license":/ {print FILENAME ":" $0}' {} | \
  grep -Ei 'license.*(http|cisco)' || true

echo
echo "Packages using SEE LICENSE IN without a LICENSE file next to package.json:"
fd -a package.json | while read -r f; do
  lic=$(jq -r '.license // ""' "$f" 2>/dev/null || echo "")
  if echo "$lic" | grep -qEi '^SEE LICENSE IN '; then
    dir=$(dirname "$f")
    file=$(echo "$lic" | sed -E 's/^SEE LICENSE IN[ ]+//')
    if [ ! -f "$dir/$file" ]; then
      echo "$f -> missing $file"
    fi
  fi
done

Length of output: 44434


Standardize npm license fields across affected packages

A repository-wide check shows multiple package.json files using free-form license strings or URLs, which will trigger npm warnings and break license scanners. npm requires a valid SPDX identifier, "UNLICENSED", or "SEE LICENSE IN <file>".

Packages to update:
• ./package.json
• ./packages/@webex/internal-plugin-llm/package.json
• ./packages/@webex/internal-plugin-voicea/package.json
• ./packages/@webex/media-helpers/package.json
• ./packages/@webex/plugin-cc/package.json
• ./packages/@webex/plugin-encryption/package.json
• ./packages/@webex/plugin-meetings/package.json
• ./packages/webex/package.json
• ./packages/webex-node/package.json

As an example, in packages/@webex/plugin-cc/package.json apply:

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE"

Follow-ups:

  • Add a LICENSE file containing the Cisco General Terms/EULA (or approved notice) in each package directory.
  • Ensure the LICENSE file is included in published tarballs.
  • If Legal prefers EULA-governed modules to be "UNLICENSED", update the field accordingly and still include a LICENSE or NOTICE file.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
"license": "SEE LICENSE IN LICENSE"
🤖 Prompt for AI Agents
In packages/@webex/plugin-cc/package.json around line 4, the "license" field
uses a free-form string/URL which is invalid for npm; update it to a valid SPDX
identifier (e.g., "UNLICENSED" if Legal prefers) or use the SEE LICENSE IN
pattern such as "SEE LICENSE IN LICENSE" and add a LICENSE (or NOTICE) file in
the package directory containing the Cisco General Terms/EULA, ensuring that
LICENSE is included in the package tarball; repeat the same standardized change
across the other listed package.json files.

"name": "webex",
"description": "SDK for Cisco Webex",
"license": "Cisco EULA (https://www.cisco.com/c/en/us/products/end-user-license-agreement.html)",
"license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Public package: avoid non-SPDX license strings to keep compliance tooling happy.

This package is typically published to npm; using a free-form string with a URL can cause npm warnings and confuse automated scanners.

Recommended update:

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE"

Follow-up:

  • Add/verify a LICENSE file in this package.
  • If corporate guidance mandates a different representation (e.g., “UNLICENSED”), align consistently across all published packages.

You can reuse the repository-wide script shared in the plugin-cc comment to validate consistency and file presence.


🏁 Script executed:

#!/usr/bin/env bash
set -euxo pipefail

# Print the license field from the webex package.json
jq '.license' packages/webex/package.json

# Check for the presence of a LICENSE file in the package directory
find packages/webex -maxdepth 1 -type f \( -iname "LICENSE" -o -iname "LICENSE.md" \)

Length of output: 273


Update SPDX license reference in package.json

The packages/webex/package.json currently uses a free-form license string which can trigger npm warnings and tooling issues. Since there is already a LICENSE file present, update the field to point to it:

• packages/webex/package.json (line 4):

-  "license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
+  "license": "SEE LICENSE IN LICENSE"

• Confirmed packages/webex/LICENSE exists.

If your corporate policy requires a different SPDX notation (e.g., "UNLICENSED"), please apply it consistently across all published packages.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"license": "Cisco's General Terms (https://www.cisco.com/site/us/en/about/legal/contract-experience/index.html)",
"license": "SEE LICENSE IN LICENSE"
🤖 Prompt for AI Agents
In packages/webex/package.json around line 4, the license field uses a free-form
string which causes npm/tooling warnings; replace it with a SPDX-safe reference
that points to the repo LICENSE file (e.g., set "license": "SEE LICENSE IN
LICENSE") and save; if your corporate policy requires a different SPDX value
(for example "UNLICENSED"), apply that instead and ensure the same SPDX-style
license value is used consistently across all published packages.

@mkesavan13 mkesavan13 merged commit d798015 into webex:next Aug 12, 2025
12 of 13 checks passed
@mkesavan13 mkesavan13 deleted the update-cc-plugin-license branch August 12, 2025 17:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

validated If the pull request is validated for automation.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant