@biznetgio/neo-app 0.4.68 → 0.4.69

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/mcp/tools.js +20 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biznetgio/neo-app",
3
- "version": "0.4.68",
3
+ "version": "0.4.69",
4
4
  "description": "NEO App CLI — one-command agent onboarding, MCP server, and project ops for coding agents (Codex, Claude Code).",
5
5
  "type": "module",
6
6
  "bin": {
package/src/mcp/tools.js CHANGED
@@ -270,6 +270,25 @@ export const TOOLS = [
270
270
  return { environment: sessionEnv, ...acct };
271
271
  },
272
272
  },
273
+ {
274
+ name: 'neo_list_tokens',
275
+ description: 'List your API tokens — the agent/MCP & CLI SESSIONS that can act as you (JNG #109). Returns id, name, scope, createdAt, and lastUsed (so you can spot stale or unexpected sessions). Token secrets are never returned (write-only). Use with neo_revoke_token to terminate a session.',
276
+ mutating: false,
277
+ schema: { type: 'object', properties: {} },
278
+ async call(api) {
279
+ return (await api.get('/api/v1/tokens')).data;
280
+ },
281
+ },
282
+ {
283
+ name: 'neo_revoke_token',
284
+ description: 'Revoke (terminate) an API token / agent session by id — the token stops working immediately and cannot be restored (JNG #109). DESTRUCTIVE: confirm with the user which session to revoke first, and do NOT revoke the token this session is currently using unless the user explicitly wants to end it. Use neo_list_tokens to find the id.',
285
+ mutating: true,
286
+ destructive: true,
287
+ schema: { type: 'object', properties: { tokenId: str('Token/session id (from neo_list_tokens)') }, required: ['tokenId'] },
288
+ async call(api, args) {
289
+ return (await api.del(`/api/v1/tokens/${args.tokenId}`)).data;
290
+ },
291
+ },
273
292
  {
274
293
  name: 'neo_get_capabilities',
275
294
  description:
@@ -313,7 +332,7 @@ export const TOOLS = [
313
332
  controlPlane,
314
333
  resourceTypes,
315
334
  // Verbs this MCP build exposes today (no create-DB/queue/cron/bucket, no costed plan/apply yet).
316
- lifecycleVerbs: ['plan', 'apply', 'plan_promotion', 'get_operation', 'wait_operation', 'delete_stack', 'reconcile_usage', 'service_usage', 'create', 'list', 'get', 'update', 'verify', 'enable_public_access', 'disable_public_access', 'deploy', 'scale', 'add_domain', 'remove_domain', 'domain_status', 'logs', 'get_variables', 'set_variable', 'estimate', 'scan_repo', 'bind', 'unbind', 'run_cron', 'cron_questionnaire', 'presign_object', 'backup', 'restore', 'delete', 'delete_project', 'list_approvals', 'get_approval', 'get_credit', 'list_templates'],
335
+ lifecycleVerbs: ['plan', 'apply', 'plan_promotion', 'get_operation', 'wait_operation', 'delete_stack', 'reconcile_usage', 'service_usage', 'create', 'list', 'get', 'update', 'verify', 'enable_public_access', 'disable_public_access', 'deploy', 'scale', 'add_domain', 'remove_domain', 'domain_status', 'logs', 'get_variables', 'set_variable', 'estimate', 'scan_repo', 'bind', 'unbind', 'run_cron', 'cron_questionnaire', 'presign_object', 'backup', 'restore', 'delete', 'delete_project', 'list_approvals', 'get_approval', 'get_credit', 'list_templates', 'list_tokens', 'revoke_token'],
317
336
  promotion: { supported: true, byCopy: true, tool: 'neo_plan_promotion', note: 'staging→production promotion by copy (JNG #112 §8.7): an immutable costed prod stack plan; applied with neo_apply_stack; copies build/compute/env/bound foundations, never custom domains or secret values, never mutates the source.' },
318
337
  bindings: { supported: true, targets: ['neo_db', 'neo_queue', 'neo_object_storage'], writeOnly: true, note: 'neo_bind_resource + neo_plan_stack bindings inject DATABASE_URL / NATS_URL (+ NATS_HOST/PORT/USER/PASSWORD) / S3_* server-side at deploy; secrets never returned (handoff 5)' },
319
338
  sourceTypes: ['git', 'image', 'dockerfile', 'local', 'template'],