Skip to content

[Bug]: Several service directories are missing from @chaitin-ai/octobus-tentacles package files/bin manifest #390

Description

@shiyueyi-1111

Summary

Several complete service directories exist under services/, but they are not included in
the aggregate @chaitin-ai/octobus-tentacles package manifest.

As a result, npm pack / npm publishing omits these services, so users cannot import them
from the distributed tentacles package.

Missing services:

Directory service.json name Missing bin
━━━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
chaitin__cloudatlas cloudatlas bin/cloudatlas.js
─────────────────────── ───────────────────── ────────────────────────────
first__epss-v1 first-epss-v1 bin/first-epss-v1.js
─────────────────────── ───────────────────── ────────────────────────────
qianxin__hunter_v23.1 qianxin-hunter bin/qianxin-hunter.js
─────────────────────── ───────────────────── ────────────────────────────
threatbook__ngtip_v5 threatbook-ngtip-v5 bin/threatbook-ngtip-v5.js

Code evidence:

  • services/package.json has explicit bin and files lists.
  • The four service directories above contain service.json and implementation files.
  • They are not listed in the aggregate package manifest.
  • Corresponding launcher files are also missing under services/bin/.

Steps to reproduce

  1. From the repository root, run:
node - <<'NODE'
const fs = require('fs');

const pkg = JSON.parse(fs.readFileSync('services/package.json', 'utf8'));
const dirs = fs.readdirSync('services', { withFileTypes: true })
  .filter(d => d.isDirectory() && !['bin', 'scripts', 'tests'].includes(d.name))
  .map(d => d.name)
  .sort();

const files = new Set(pkg.files || []);
const missing = dirs.filter(d => !files.has(d));

console.log('Missing from files:', missing);

for (const d of missing) {
  const serviceJson = `services/${d}/service.json`;
  if (!fs.existsSync(serviceJson)) continue;

  const service = JSON.parse(fs.readFileSync(serviceJson, 'utf8'));
  console.log(`${d}: service name=${service.name}, bin=${pkg.bin?.[service.name] ||
  'MISSING'}`);
}
NODE

2. Verify package contents:

cd services
npm pack --dry-run --json --cache /tmp/octobus-npm-cache

3. Observe that the packed file list does not contain the missing service directories.


### Expected behavior

```markdown
Every service intended to ship in `@chaitin-ai/octobus-tentacles` should be represented in:

- `services/package.json` `files`
- `services/package.json` `bin`
- `services/bin/*.js`

The distributed tentacles package should include all service implementations present in
`services/`.

### Actual behavior

The repository contains the service implementations, but the npm aggregate package omits at
least these services:

- `chaitin__cloudatlas`
- `first__epss-v1`
- `qianxin__hunter_v23.1`
- `threatbook__ngtip_v5`

Users installing or importing from the published tentacles package cannot access these
services.

### Version or commit

ee2850a

### Runtime driver

Not applicable. Packaging issue.

### Logs

No daemon logs. This is reproducible from services/package.json and npm pack output.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions