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
- 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.
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:
Steps to reproduce