@parall/cli 1.49.0 → 1.50.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EACnB,OAAO,EACP,YAAY,EACb,MAAM,aAAa,CAAC;AAmCrB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,QAqBA;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,QAmBA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,QAIA;AAuBD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;GASvD;AAMD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM;CAM/E;AAaD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAuB9C;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,aAAa,CAAC,CASxB;AA6CD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAiJrD"}
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,aAAa,EAEb,mBAAmB,EACnB,OAAO,EACP,YAAY,EACb,MAAM,aAAa,CAAC;AAmCrB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,QAqBA;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,QAmBA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,QAIA;AAuBD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;GASvD;AAMD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,cAAc,CAAC;IAC3C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAEZ,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM;CAM/E;AAaD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAuB9C;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC7C,OAAO,CAAC,aAAa,CAAC,CASxB;AA6CD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,QAkKrD"}
@@ -1,6 +1,6 @@
1
1
  import { closeSync, openSync, unlinkSync, writeFileSync } from 'node:fs';
2
2
  import { resolveCredentials } from '../lib/client.js';
3
- import { printJson, printError, printRefHint } from '../lib/output.js';
3
+ import { printJson, printError, printRefHint, stripPrllScheme } from '../lib/output.js';
4
4
  function stripUndefined(obj) {
5
5
  return Object.fromEntries(Object.entries(obj).filter(([, v]) => v !== undefined));
6
6
  }
@@ -178,6 +178,21 @@ function errorMessage(err) {
178
178
  }
179
179
  export function registerAgentCommands(program) {
180
180
  const agents = program.command('agents').description('Manage agents');
181
+ agents
182
+ .command('instructions')
183
+ .description('Get agent Instructions (defaults to yourself; reading another agent requires org admin)')
184
+ .argument('[agentId]', 'Agent ID (defaults to the authenticated agent)')
185
+ .action(async (agentId) => {
186
+ try {
187
+ const { client, orgId } = resolveCredentials();
188
+ const target = agentId ? stripPrllScheme(agentId) : (await client.getMe()).id;
189
+ const result = await client.getAgentInstructions(orgId, target);
190
+ printJson(result);
191
+ }
192
+ catch (err) {
193
+ printError(err);
194
+ }
195
+ });
181
196
  agents
182
197
  .command('list')
183
198
  .description('List all agents in the organization')
@@ -1 +1 @@
1
- {"version":3,"file":"clip.d.ts","sourceRoot":"","sources":["../../src/commands/clip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA4OpD"}
1
+ {"version":3,"file":"clip.d.ts","sourceRoot":"","sources":["../../src/commands/clip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QAmQpD"}
@@ -111,6 +111,29 @@ export function registerClipCommands(program) {
111
111
  printError(err);
112
112
  }
113
113
  });
114
+ clip
115
+ .command('connections')
116
+ .description('List clip connections (Edge device/profile or MCP bindings) for a clip by alias')
117
+ .argument('<alias>', 'Clip alias')
118
+ .action(async (alias) => {
119
+ try {
120
+ const { client, orgId } = resolveCredentials();
121
+ // Resolve alias to clip ID — same lookup `clip info` uses
122
+ const clips = await client.listClips(orgId);
123
+ const found = clips.find((c) => c.alias === alias);
124
+ if (!found) {
125
+ printError(new Error(`Clip with alias "${alias}" not found`));
126
+ }
127
+ const resp = await client.listClipConnections(orgId, found.id);
128
+ // A Go nil slice serializes as `null`, not `[]` — normalize so an
129
+ // empty result always prints `[]` (ts/AGENTS.md § Cross-Language
130
+ // Contract Edge Cases).
131
+ printJson(resp.data ?? []);
132
+ }
133
+ catch (err) {
134
+ printError(err);
135
+ }
136
+ });
114
137
  clip
115
138
  .command('invoke')
116
139
  .description('Invoke a clip command')
@@ -1 +1 @@
1
- {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA+CpD"}
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA6DpD"}
@@ -46,4 +46,18 @@ export function registerUserCommands(program) {
46
46
  printError(err);
47
47
  }
48
48
  });
49
+ members
50
+ .command('profile')
51
+ .description("Get a member's org-scoped public profile (title / description)")
52
+ .argument('<userId>', 'User ID (human or agent)')
53
+ .action(async (userId) => {
54
+ try {
55
+ const { client, orgId } = resolveCredentials();
56
+ const result = await client.getMemberProfile(orgId, stripPrllScheme(userId));
57
+ printJson(result);
58
+ }
59
+ catch (err) {
60
+ printError(err);
61
+ }
62
+ });
49
63
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parall/cli",
3
- "version": "1.49.0",
3
+ "version": "1.50.0",
4
4
  "description": "CLI client for Parall — universal agent & human access to Parall API",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -36,14 +36,14 @@
36
36
  "diff": "^8.0.3",
37
37
  "js-yaml": "^4.1.0",
38
38
  "zod": "^4.3.6",
39
- "@parall/agent-core": "1.49.0",
40
- "@parall/sdk": "1.49.0"
39
+ "@parall/agent-core": "1.50.0",
40
+ "@parall/sdk": "1.50.0"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/js-yaml": "^4.0.9",
44
44
  "@types/node": "^22.0.0",
45
45
  "typescript": "^5.7.0",
46
- "@parall/agent-core": "1.49.0"
46
+ "@parall/agent-core": "1.50.0"
47
47
  },
48
48
  "scripts": {
49
49
  "build": "tsc",