@parall/daemon 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.
- package/bundle/manifest.json +11 -11
- package/bundle/parall-browser-pod.js +51 -0
- package/bundle/parall-claude-agent.js +109 -21
- package/bundle/parall-codex-agent.js +109 -21
- package/bundle/parall-daemon.js +51 -0
- package/package.json +6 -6
package/bundle/manifest.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.
|
|
3
|
-
"built_at": "2026-07-
|
|
2
|
+
"version": "1.50.0",
|
|
3
|
+
"built_at": "2026-07-27T10:07:52.208Z",
|
|
4
4
|
"min_node_version": "20.0.0",
|
|
5
5
|
"files": {
|
|
6
6
|
"bb-browser-daemon.js": {
|
|
@@ -16,29 +16,29 @@
|
|
|
16
16
|
"size": 18
|
|
17
17
|
},
|
|
18
18
|
"parall-browser-pod.js": {
|
|
19
|
-
"sha256": "
|
|
20
|
-
"size":
|
|
19
|
+
"sha256": "0025fc6f85af4dcfe22a6d532c322bd2bf064f83378d88c77cbcca00a469ed82",
|
|
20
|
+
"size": 2901740
|
|
21
21
|
},
|
|
22
22
|
"parall-channel-exec.js": {
|
|
23
23
|
"sha256": "7c2a6e12483a45e9eb4a42cd7d4cdd3c4fa21dd09ac1347d9a3e177b4ddee930",
|
|
24
24
|
"size": 7220
|
|
25
25
|
},
|
|
26
26
|
"parall-claude-agent.js": {
|
|
27
|
-
"sha256": "
|
|
28
|
-
"size":
|
|
27
|
+
"sha256": "3786edb7e4d2dc22a95f2789416ee1fa1bf191e166d443c868cd8772a6033278",
|
|
28
|
+
"size": 2737538
|
|
29
29
|
},
|
|
30
30
|
"parall-codex-agent.js": {
|
|
31
|
-
"sha256": "
|
|
32
|
-
"size":
|
|
31
|
+
"sha256": "ba13d01de7a89860d75bbc1abd5ea5c9c605cc9104161a8d7960c38f84f7870c",
|
|
32
|
+
"size": 2779278
|
|
33
33
|
},
|
|
34
34
|
"parall-daemon.js": {
|
|
35
|
-
"sha256": "
|
|
36
|
-
"size":
|
|
35
|
+
"sha256": "a135d16586ea01a0ed3aa811dac509827efc76d2eb14de6430e1421590afc70e",
|
|
36
|
+
"size": 2963977
|
|
37
37
|
},
|
|
38
38
|
"parall-openclaw-agent.js": {
|
|
39
39
|
"sha256": "856a1c3a9ae0ffef8efe2481fa1171dbeb1d67cccb88616aa9bf16da96a69355",
|
|
40
40
|
"size": 9923
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
|
-
"signature": "
|
|
43
|
+
"signature": "KflWD7Xe1CWN7YZuBW3BTXirw4TfZITSwiKrRO+SU/OXNfXf3IC0nm4OWsR5zHb9J+y8cmqzpK2Zz8vXXSgwDw=="
|
|
44
44
|
}
|
|
@@ -63529,6 +63529,12 @@ var ENDPOINTS = {
|
|
|
63529
63529
|
ORG_MEMBER: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}`,
|
|
63530
63530
|
ORG_MEMBER_CHATS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/chats`,
|
|
63531
63531
|
ORG_MEMBER_TASKS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/tasks`,
|
|
63532
|
+
// Org-scoped public profile (title / description). GET readable by every
|
|
63533
|
+
// active member; PATCH is CAS-guarded (expected_version).
|
|
63534
|
+
ORG_MEMBER_PROFILE: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}/profile`,
|
|
63535
|
+
// Private agent Instructions — visibility gated server-side
|
|
63536
|
+
// (agent self + Human org admin/owner). Never cached.
|
|
63537
|
+
AGENT_INSTRUCTIONS: (orgId, agentId) => `${API_BASE}/orgs/${orgId}/agents/${agentId}/instructions`,
|
|
63532
63538
|
REF_SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/refs/search`,
|
|
63533
63539
|
// Direct messages (org-scoped, atomic find-or-create + send)
|
|
63534
63540
|
DM: (orgId) => `${API_BASE}/orgs/${orgId}/dm`,
|
|
@@ -63812,6 +63818,11 @@ var ENDPOINTS = {
|
|
|
63812
63818
|
SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/search`,
|
|
63813
63819
|
// Feature flags (org-scoped, server-evaluated)
|
|
63814
63820
|
FEATURE_FLAGS: (orgId) => `${API_BASE}/orgs/${orgId}/feature-flags`,
|
|
63821
|
+
// Team templates (org-scoped, owner/admin only)
|
|
63822
|
+
TEMPLATES: (orgId) => `${API_BASE}/orgs/${orgId}/templates`,
|
|
63823
|
+
TEMPLATE: (orgId, templateId) => `${API_BASE}/orgs/${orgId}/templates/${templateId}`,
|
|
63824
|
+
TEMPLATE_DEPLOYMENTS: (orgId) => `${API_BASE}/orgs/${orgId}/template-deployments`,
|
|
63825
|
+
TEMPLATE_DEPLOYMENT: (orgId, deploymentId) => `${API_BASE}/orgs/${orgId}/template-deployments/${deploymentId}`,
|
|
63815
63826
|
// Billing & Credits (org-scoped)
|
|
63816
63827
|
BILLING: (orgId) => `${API_BASE}/orgs/${orgId}/billing`,
|
|
63817
63828
|
BILLING_TRANSACTIONS: (orgId) => `${API_BASE}/orgs/${orgId}/billing/transactions`,
|
|
@@ -64246,6 +64257,30 @@ var ParallClient = class _ParallClient {
|
|
|
64246
64257
|
async updateOrgMember(orgId, userId, role) {
|
|
64247
64258
|
return this.request("PATCH", ENDPOINTS.ORG_MEMBER(orgId, userId), { role });
|
|
64248
64259
|
}
|
|
64260
|
+
/** Org-scoped public profile (title / description) of any active member. */
|
|
64261
|
+
async getMemberProfile(orgId, userId) {
|
|
64262
|
+
return this.request("GET", ENDPOINTS.ORG_MEMBER_PROFILE(orgId, userId));
|
|
64263
|
+
}
|
|
64264
|
+
/**
|
|
64265
|
+
* CAS full-replacement of a member's public profile. Humans edit their
|
|
64266
|
+
* own; Human org admins/owners edit agents'. A stale expected_version
|
|
64267
|
+
* gets 409 PROFILE_VERSION_CONFLICT with error.details.current_version.
|
|
64268
|
+
*/
|
|
64269
|
+
async updateMemberProfile(orgId, userId, req) {
|
|
64270
|
+
return this.request("PATCH", ENDPOINTS.ORG_MEMBER_PROFILE(orgId, userId), req);
|
|
64271
|
+
}
|
|
64272
|
+
/** Private agent Instructions — agent self or Human org admin/owner only. */
|
|
64273
|
+
async getAgentInstructions(orgId, agentId) {
|
|
64274
|
+
return this.request("GET", ENDPOINTS.AGENT_INSTRUCTIONS(orgId, agentId));
|
|
64275
|
+
}
|
|
64276
|
+
/**
|
|
64277
|
+
* CAS update of the private Instructions (Human org admin/owner only).
|
|
64278
|
+
* A stale expected_version gets 409 INSTRUCTIONS_VERSION_CONFLICT with
|
|
64279
|
+
* error.details.current_version.
|
|
64280
|
+
*/
|
|
64281
|
+
async updateAgentInstructions(orgId, agentId, req) {
|
|
64282
|
+
return this.request("PATCH", ENDPOINTS.AGENT_INSTRUCTIONS(orgId, agentId), req);
|
|
64283
|
+
}
|
|
64249
64284
|
// Member activity surfaces — chats the member participates in within this org,
|
|
64250
64285
|
// ordered by most recent activity. Powers the member profile Activity tab.
|
|
64251
64286
|
async getMemberChats(orgId, memberId, params) {
|
|
@@ -65589,6 +65624,22 @@ var ParallClient = class _ParallClient {
|
|
|
65589
65624
|
async getFeatureFlags(orgId) {
|
|
65590
65625
|
return this.request("GET", ENDPOINTS.FEATURE_FLAGS(orgId));
|
|
65591
65626
|
}
|
|
65627
|
+
// ---- Official Template catalog (org-contextual owner/admin reads + Hire) ----
|
|
65628
|
+
async listOfficialTemplates(orgId) {
|
|
65629
|
+
const response = await this.request("GET", ENDPOINTS.TEMPLATES(orgId));
|
|
65630
|
+
return response.templates ?? [];
|
|
65631
|
+
}
|
|
65632
|
+
async getOfficialTemplate(orgId, templateId) {
|
|
65633
|
+
return this.request("GET", ENDPOINTS.TEMPLATE(orgId, templateId));
|
|
65634
|
+
}
|
|
65635
|
+
async deployTemplate(orgId, request) {
|
|
65636
|
+
return this.request("POST", ENDPOINTS.TEMPLATE_DEPLOYMENTS(orgId), request, void 0, false, {
|
|
65637
|
+
timeoutMs: 185e3
|
|
65638
|
+
});
|
|
65639
|
+
}
|
|
65640
|
+
async getTemplateDeployment(orgId, deploymentId) {
|
|
65641
|
+
return this.request("GET", ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, deploymentId));
|
|
65642
|
+
}
|
|
65592
65643
|
// ---- Billing & Credits (org-scoped) ----
|
|
65593
65644
|
async getBilling(orgId) {
|
|
65594
65645
|
return this.request("GET", ENDPOINTS.BILLING(orgId));
|
|
@@ -51293,6 +51293,17 @@ function laneContextFilePath(contextDir, targetUri, threadRootId) {
|
|
|
51293
51293
|
|
|
51294
51294
|
// ts/sdk/dist/types.js
|
|
51295
51295
|
var MENTION_ALL_USER_ID = "all";
|
|
51296
|
+
var MENTION_ALL_HUMANS_USER_ID = "allhuman";
|
|
51297
|
+
var MENTION_ALL_AGENTS_USER_ID = "allagent";
|
|
51298
|
+
function mentionTargetsUser(mentionUserId, userId, userType) {
|
|
51299
|
+
if (mentionUserId === userId || mentionUserId === MENTION_ALL_USER_ID)
|
|
51300
|
+
return true;
|
|
51301
|
+
if (mentionUserId === MENTION_ALL_HUMANS_USER_ID)
|
|
51302
|
+
return userType === "human";
|
|
51303
|
+
if (mentionUserId === MENTION_ALL_AGENTS_USER_ID)
|
|
51304
|
+
return userType === "agent";
|
|
51305
|
+
return false;
|
|
51306
|
+
}
|
|
51296
51307
|
|
|
51297
51308
|
// ts/sdk/dist/constants.js
|
|
51298
51309
|
var API_BASE = "/api/v1";
|
|
@@ -51328,6 +51339,12 @@ var ENDPOINTS = {
|
|
|
51328
51339
|
ORG_MEMBER: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}`,
|
|
51329
51340
|
ORG_MEMBER_CHATS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/chats`,
|
|
51330
51341
|
ORG_MEMBER_TASKS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/tasks`,
|
|
51342
|
+
// Org-scoped public profile (title / description). GET readable by every
|
|
51343
|
+
// active member; PATCH is CAS-guarded (expected_version).
|
|
51344
|
+
ORG_MEMBER_PROFILE: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}/profile`,
|
|
51345
|
+
// Private agent Instructions — visibility gated server-side
|
|
51346
|
+
// (agent self + Human org admin/owner). Never cached.
|
|
51347
|
+
AGENT_INSTRUCTIONS: (orgId, agentId) => `${API_BASE}/orgs/${orgId}/agents/${agentId}/instructions`,
|
|
51331
51348
|
REF_SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/refs/search`,
|
|
51332
51349
|
// Direct messages (org-scoped, atomic find-or-create + send)
|
|
51333
51350
|
DM: (orgId) => `${API_BASE}/orgs/${orgId}/dm`,
|
|
@@ -51611,6 +51628,11 @@ var ENDPOINTS = {
|
|
|
51611
51628
|
SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/search`,
|
|
51612
51629
|
// Feature flags (org-scoped, server-evaluated)
|
|
51613
51630
|
FEATURE_FLAGS: (orgId) => `${API_BASE}/orgs/${orgId}/feature-flags`,
|
|
51631
|
+
// Team templates (org-scoped, owner/admin only)
|
|
51632
|
+
TEMPLATES: (orgId) => `${API_BASE}/orgs/${orgId}/templates`,
|
|
51633
|
+
TEMPLATE: (orgId, templateId) => `${API_BASE}/orgs/${orgId}/templates/${templateId}`,
|
|
51634
|
+
TEMPLATE_DEPLOYMENTS: (orgId) => `${API_BASE}/orgs/${orgId}/template-deployments`,
|
|
51635
|
+
TEMPLATE_DEPLOYMENT: (orgId, deploymentId) => `${API_BASE}/orgs/${orgId}/template-deployments/${deploymentId}`,
|
|
51614
51636
|
// Billing & Credits (org-scoped)
|
|
51615
51637
|
BILLING: (orgId) => `${API_BASE}/orgs/${orgId}/billing`,
|
|
51616
51638
|
BILLING_TRANSACTIONS: (orgId) => `${API_BASE}/orgs/${orgId}/billing/transactions`,
|
|
@@ -52131,6 +52153,30 @@ var ParallClient = class _ParallClient {
|
|
|
52131
52153
|
async updateOrgMember(orgId, userId, role) {
|
|
52132
52154
|
return this.request("PATCH", ENDPOINTS.ORG_MEMBER(orgId, userId), { role });
|
|
52133
52155
|
}
|
|
52156
|
+
/** Org-scoped public profile (title / description) of any active member. */
|
|
52157
|
+
async getMemberProfile(orgId, userId) {
|
|
52158
|
+
return this.request("GET", ENDPOINTS.ORG_MEMBER_PROFILE(orgId, userId));
|
|
52159
|
+
}
|
|
52160
|
+
/**
|
|
52161
|
+
* CAS full-replacement of a member's public profile. Humans edit their
|
|
52162
|
+
* own; Human org admins/owners edit agents'. A stale expected_version
|
|
52163
|
+
* gets 409 PROFILE_VERSION_CONFLICT with error.details.current_version.
|
|
52164
|
+
*/
|
|
52165
|
+
async updateMemberProfile(orgId, userId, req) {
|
|
52166
|
+
return this.request("PATCH", ENDPOINTS.ORG_MEMBER_PROFILE(orgId, userId), req);
|
|
52167
|
+
}
|
|
52168
|
+
/** Private agent Instructions — agent self or Human org admin/owner only. */
|
|
52169
|
+
async getAgentInstructions(orgId, agentId) {
|
|
52170
|
+
return this.request("GET", ENDPOINTS.AGENT_INSTRUCTIONS(orgId, agentId));
|
|
52171
|
+
}
|
|
52172
|
+
/**
|
|
52173
|
+
* CAS update of the private Instructions (Human org admin/owner only).
|
|
52174
|
+
* A stale expected_version gets 409 INSTRUCTIONS_VERSION_CONFLICT with
|
|
52175
|
+
* error.details.current_version.
|
|
52176
|
+
*/
|
|
52177
|
+
async updateAgentInstructions(orgId, agentId, req) {
|
|
52178
|
+
return this.request("PATCH", ENDPOINTS.AGENT_INSTRUCTIONS(orgId, agentId), req);
|
|
52179
|
+
}
|
|
52134
52180
|
// Member activity surfaces — chats the member participates in within this org,
|
|
52135
52181
|
// ordered by most recent activity. Powers the member profile Activity tab.
|
|
52136
52182
|
async getMemberChats(orgId, memberId, params) {
|
|
@@ -53474,6 +53520,22 @@ var ParallClient = class _ParallClient {
|
|
|
53474
53520
|
async getFeatureFlags(orgId) {
|
|
53475
53521
|
return this.request("GET", ENDPOINTS.FEATURE_FLAGS(orgId));
|
|
53476
53522
|
}
|
|
53523
|
+
// ---- Official Template catalog (org-contextual owner/admin reads + Hire) ----
|
|
53524
|
+
async listOfficialTemplates(orgId) {
|
|
53525
|
+
const response = await this.request("GET", ENDPOINTS.TEMPLATES(orgId));
|
|
53526
|
+
return response.templates ?? [];
|
|
53527
|
+
}
|
|
53528
|
+
async getOfficialTemplate(orgId, templateId) {
|
|
53529
|
+
return this.request("GET", ENDPOINTS.TEMPLATE(orgId, templateId));
|
|
53530
|
+
}
|
|
53531
|
+
async deployTemplate(orgId, request3) {
|
|
53532
|
+
return this.request("POST", ENDPOINTS.TEMPLATE_DEPLOYMENTS(orgId), request3, void 0, false, {
|
|
53533
|
+
timeoutMs: 185e3
|
|
53534
|
+
});
|
|
53535
|
+
}
|
|
53536
|
+
async getTemplateDeployment(orgId, deploymentId) {
|
|
53537
|
+
return this.request("GET", ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, deploymentId));
|
|
53538
|
+
}
|
|
53477
53539
|
// ---- Billing & Credits (org-scoped) ----
|
|
53478
53540
|
async getBilling(orgId) {
|
|
53479
53541
|
return this.request("GET", ENDPOINTS.BILLING(orgId));
|
|
@@ -55128,6 +55190,17 @@ function buildForkResultPrefix(results) {
|
|
|
55128
55190
|
}
|
|
55129
55191
|
|
|
55130
55192
|
// ts/agent-core/dist/prompt-fragments.js
|
|
55193
|
+
function identityFromMe(me) {
|
|
55194
|
+
return {
|
|
55195
|
+
userId: me.id,
|
|
55196
|
+
displayName: me.display_name,
|
|
55197
|
+
title: me.public_profile?.title || void 0,
|
|
55198
|
+
publicDescription: me.public_profile?.description || void 0,
|
|
55199
|
+
// `||` on purpose: an empty-string instructions must also fall back to
|
|
55200
|
+
// the deprecated description alias (empty means "unset" on this wire).
|
|
55201
|
+
instructions: me.agent_profile?.instructions || me.agent_profile?.description || void 0
|
|
55202
|
+
};
|
|
55203
|
+
}
|
|
55131
55204
|
var PRLL_IDENTITY_BASE = `## You on Parall
|
|
55132
55205
|
|
|
55133
55206
|
Parall is a shared workspace where humans and agents work side by side as equals.
|
|
@@ -55149,11 +55222,15 @@ function buildIdentity(agent) {
|
|
|
55149
55222
|
const name = sanitizeProfileField(agent.displayName);
|
|
55150
55223
|
const lines = [PRLL_IDENTITY_BASE, "", "### Your Parall Identity", ""];
|
|
55151
55224
|
lines.push(`You are **${name}** (\`prll://${agent.userId}\`).`);
|
|
55152
|
-
|
|
55153
|
-
|
|
55154
|
-
|
|
55155
|
-
|
|
55156
|
-
|
|
55225
|
+
const title = agent.title ? sanitizeProfileField(agent.title) : "";
|
|
55226
|
+
if (title)
|
|
55227
|
+
lines.push(`Title: ${title}`);
|
|
55228
|
+
const about = agent.publicDescription ? sanitizeProfileField(agent.publicDescription) : "";
|
|
55229
|
+
if (about)
|
|
55230
|
+
lines.push(`About: ${about}`);
|
|
55231
|
+
const instructions = sanitizeProfileBlock(agent.instructions ?? agent.description ?? "");
|
|
55232
|
+
if (instructions) {
|
|
55233
|
+
lines.push("", "### Private instructions from your organization admins", "", instructions);
|
|
55157
55234
|
}
|
|
55158
55235
|
lines.push("", `When you see \`${agent.userId}\` or \`prll://${agent.userId}\` in messages, mentions, or events \u2014 that's you.`);
|
|
55159
55236
|
return lines.join("\n");
|
|
@@ -58139,7 +58216,7 @@ var ParallAgentGateway = class {
|
|
|
58139
58216
|
return { action: "skip" };
|
|
58140
58217
|
if (chatInfo.type === "group" && chatInfo.agentRoutingMode !== "active") {
|
|
58141
58218
|
const mentions = content.mentions ?? [];
|
|
58142
|
-
const isMentioned = mentions.some((mention) => mention.user_id
|
|
58219
|
+
const isMentioned = mentions.some((mention) => mentionTargetsUser(mention.user_id, this.opts.agentUserId, "agent"));
|
|
58143
58220
|
if (!isMentioned)
|
|
58144
58221
|
return { action: "skip" };
|
|
58145
58222
|
}
|
|
@@ -59139,8 +59216,17 @@ parall whoami
|
|
|
59139
59216
|
parall members list # All org members (humans + agents)
|
|
59140
59217
|
parall agents list # Agents only
|
|
59141
59218
|
parall users get prll://usr_xxx # Get user details by ID
|
|
59219
|
+
parall members profile prll://usr_xxx # A member's public profile (title / about)
|
|
59220
|
+
parall agents instructions # Your own private Instructions (admin-maintained)
|
|
59142
59221
|
\`\`\`
|
|
59143
59222
|
|
|
59223
|
+
Every member carries an org-scoped public profile: \`title\` (role, e.g.
|
|
59224
|
+
"Platform Lead") and \`description\` (a short about). \`members list\` includes
|
|
59225
|
+
both \u2014 use them to route work to the right person or agent. Your own system
|
|
59226
|
+
prompt already contains your public profile and your private Instructions;
|
|
59227
|
+
you cannot edit either of them \u2014 if yours should change, DM a Human org
|
|
59228
|
+
admin and ask.
|
|
59229
|
+
|
|
59144
59230
|
Create a hosted agent when the user asks for a Parall-managed runtime. Hosted
|
|
59145
59231
|
provisioning is asynchronous: creation means the agent identity, API key, and
|
|
59146
59232
|
machine record were accepted, not that the runtime is online yet. Use \`--wait\`
|
|
@@ -61538,7 +61624,7 @@ async function getAgentMeWithLegacyFallback(client, orgId) {
|
|
|
61538
61624
|
throw err;
|
|
61539
61625
|
}
|
|
61540
61626
|
const user = await client.getMe();
|
|
61541
|
-
return { ...user, agent_profile: null };
|
|
61627
|
+
return { ...user, agent_profile: null, public_profile: null };
|
|
61542
61628
|
}
|
|
61543
61629
|
}
|
|
61544
61630
|
function resolveProviderEnv() {
|
|
@@ -61579,11 +61665,9 @@ async function main() {
|
|
|
61579
61665
|
const agentUserId = me.id;
|
|
61580
61666
|
const agentLog = childLogger(activeLog, agentUserId);
|
|
61581
61667
|
activeLog = agentLog;
|
|
61582
|
-
|
|
61583
|
-
|
|
61584
|
-
|
|
61585
|
-
description: me.agent_profile?.description ?? void 0
|
|
61586
|
-
};
|
|
61668
|
+
let agentIdentity = identityFromMe(me);
|
|
61669
|
+
let lastIdentitySnapshot = JSON.stringify(agentIdentity);
|
|
61670
|
+
let lastKnownAgentProfile = me.agent_profile;
|
|
61587
61671
|
const runtimeKey = config.runtimeKey || buildClaudeRuntimeKey(agentUserId);
|
|
61588
61672
|
const sessionStateFilePath = sessionStateFilePathForRuntime(config.stateDir, runtimeKey);
|
|
61589
61673
|
const sessionManager = new ClaudeSessionManager(runtimeKey, sessionStateFilePath, agentLog);
|
|
@@ -61644,15 +61728,17 @@ async function main() {
|
|
|
61644
61728
|
}
|
|
61645
61729
|
const refreshPlatformConfig = async () => {
|
|
61646
61730
|
const updated = await configMgr.fetch();
|
|
61647
|
-
let
|
|
61648
|
-
|
|
61649
|
-
|
|
61650
|
-
|
|
61651
|
-
|
|
61652
|
-
|
|
61653
|
-
|
|
61731
|
+
let refreshedMe;
|
|
61732
|
+
try {
|
|
61733
|
+
refreshedMe = await getAgentMeWithLegacyFallback(client, config.orgId);
|
|
61734
|
+
} catch (err) {
|
|
61735
|
+
agentLog.warn(`platform config refresh: /agents/me refetch failed (keeping last-known identity): ${String(err)}`);
|
|
61736
|
+
}
|
|
61737
|
+
if (refreshedMe) {
|
|
61738
|
+
agentIdentity = identityFromMe(refreshedMe);
|
|
61739
|
+
lastKnownAgentProfile = refreshedMe.agent_profile;
|
|
61654
61740
|
}
|
|
61655
|
-
const isPin = deriveModelIsPin(updated,
|
|
61741
|
+
const isPin = deriveModelIsPin(updated, lastKnownAgentProfile);
|
|
61656
61742
|
const localEffort = process.env.CLAUDE_CODE_EFFORT_LEVEL?.trim() || null;
|
|
61657
61743
|
adapter.updateConfig({
|
|
61658
61744
|
model: resolveRuntimeModel(isPin, updated.model, config.model) ?? null,
|
|
@@ -61667,8 +61753,10 @@ async function main() {
|
|
|
61667
61753
|
promptWritten = false;
|
|
61668
61754
|
agentLog.warn(`system prompt refresh write failed (retrying next refresh): ${String(err)}`);
|
|
61669
61755
|
}
|
|
61670
|
-
|
|
61756
|
+
const identitySnapshot = JSON.stringify(agentIdentity);
|
|
61757
|
+
if (promptWritten && (joinedFragments !== lastCapabilityFragments || identitySnapshot !== lastIdentitySnapshot)) {
|
|
61671
61758
|
lastCapabilityFragments = joinedFragments;
|
|
61759
|
+
lastIdentitySnapshot = identitySnapshot;
|
|
61672
61760
|
adapter.requestProcessRestart();
|
|
61673
61761
|
}
|
|
61674
61762
|
};
|
|
@@ -51293,6 +51293,17 @@ function laneContextFilePath(contextDir, targetUri, threadRootId) {
|
|
|
51293
51293
|
|
|
51294
51294
|
// ts/sdk/dist/types.js
|
|
51295
51295
|
var MENTION_ALL_USER_ID = "all";
|
|
51296
|
+
var MENTION_ALL_HUMANS_USER_ID = "allhuman";
|
|
51297
|
+
var MENTION_ALL_AGENTS_USER_ID = "allagent";
|
|
51298
|
+
function mentionTargetsUser(mentionUserId, userId, userType) {
|
|
51299
|
+
if (mentionUserId === userId || mentionUserId === MENTION_ALL_USER_ID)
|
|
51300
|
+
return true;
|
|
51301
|
+
if (mentionUserId === MENTION_ALL_HUMANS_USER_ID)
|
|
51302
|
+
return userType === "human";
|
|
51303
|
+
if (mentionUserId === MENTION_ALL_AGENTS_USER_ID)
|
|
51304
|
+
return userType === "agent";
|
|
51305
|
+
return false;
|
|
51306
|
+
}
|
|
51296
51307
|
|
|
51297
51308
|
// ts/sdk/dist/constants.js
|
|
51298
51309
|
var API_BASE = "/api/v1";
|
|
@@ -51328,6 +51339,12 @@ var ENDPOINTS = {
|
|
|
51328
51339
|
ORG_MEMBER: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}`,
|
|
51329
51340
|
ORG_MEMBER_CHATS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/chats`,
|
|
51330
51341
|
ORG_MEMBER_TASKS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/tasks`,
|
|
51342
|
+
// Org-scoped public profile (title / description). GET readable by every
|
|
51343
|
+
// active member; PATCH is CAS-guarded (expected_version).
|
|
51344
|
+
ORG_MEMBER_PROFILE: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}/profile`,
|
|
51345
|
+
// Private agent Instructions — visibility gated server-side
|
|
51346
|
+
// (agent self + Human org admin/owner). Never cached.
|
|
51347
|
+
AGENT_INSTRUCTIONS: (orgId, agentId) => `${API_BASE}/orgs/${orgId}/agents/${agentId}/instructions`,
|
|
51331
51348
|
REF_SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/refs/search`,
|
|
51332
51349
|
// Direct messages (org-scoped, atomic find-or-create + send)
|
|
51333
51350
|
DM: (orgId) => `${API_BASE}/orgs/${orgId}/dm`,
|
|
@@ -51611,6 +51628,11 @@ var ENDPOINTS = {
|
|
|
51611
51628
|
SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/search`,
|
|
51612
51629
|
// Feature flags (org-scoped, server-evaluated)
|
|
51613
51630
|
FEATURE_FLAGS: (orgId) => `${API_BASE}/orgs/${orgId}/feature-flags`,
|
|
51631
|
+
// Team templates (org-scoped, owner/admin only)
|
|
51632
|
+
TEMPLATES: (orgId) => `${API_BASE}/orgs/${orgId}/templates`,
|
|
51633
|
+
TEMPLATE: (orgId, templateId) => `${API_BASE}/orgs/${orgId}/templates/${templateId}`,
|
|
51634
|
+
TEMPLATE_DEPLOYMENTS: (orgId) => `${API_BASE}/orgs/${orgId}/template-deployments`,
|
|
51635
|
+
TEMPLATE_DEPLOYMENT: (orgId, deploymentId) => `${API_BASE}/orgs/${orgId}/template-deployments/${deploymentId}`,
|
|
51614
51636
|
// Billing & Credits (org-scoped)
|
|
51615
51637
|
BILLING: (orgId) => `${API_BASE}/orgs/${orgId}/billing`,
|
|
51616
51638
|
BILLING_TRANSACTIONS: (orgId) => `${API_BASE}/orgs/${orgId}/billing/transactions`,
|
|
@@ -52131,6 +52153,30 @@ var ParallClient = class _ParallClient {
|
|
|
52131
52153
|
async updateOrgMember(orgId, userId, role) {
|
|
52132
52154
|
return this.request("PATCH", ENDPOINTS.ORG_MEMBER(orgId, userId), { role });
|
|
52133
52155
|
}
|
|
52156
|
+
/** Org-scoped public profile (title / description) of any active member. */
|
|
52157
|
+
async getMemberProfile(orgId, userId) {
|
|
52158
|
+
return this.request("GET", ENDPOINTS.ORG_MEMBER_PROFILE(orgId, userId));
|
|
52159
|
+
}
|
|
52160
|
+
/**
|
|
52161
|
+
* CAS full-replacement of a member's public profile. Humans edit their
|
|
52162
|
+
* own; Human org admins/owners edit agents'. A stale expected_version
|
|
52163
|
+
* gets 409 PROFILE_VERSION_CONFLICT with error.details.current_version.
|
|
52164
|
+
*/
|
|
52165
|
+
async updateMemberProfile(orgId, userId, req) {
|
|
52166
|
+
return this.request("PATCH", ENDPOINTS.ORG_MEMBER_PROFILE(orgId, userId), req);
|
|
52167
|
+
}
|
|
52168
|
+
/** Private agent Instructions — agent self or Human org admin/owner only. */
|
|
52169
|
+
async getAgentInstructions(orgId, agentId) {
|
|
52170
|
+
return this.request("GET", ENDPOINTS.AGENT_INSTRUCTIONS(orgId, agentId));
|
|
52171
|
+
}
|
|
52172
|
+
/**
|
|
52173
|
+
* CAS update of the private Instructions (Human org admin/owner only).
|
|
52174
|
+
* A stale expected_version gets 409 INSTRUCTIONS_VERSION_CONFLICT with
|
|
52175
|
+
* error.details.current_version.
|
|
52176
|
+
*/
|
|
52177
|
+
async updateAgentInstructions(orgId, agentId, req) {
|
|
52178
|
+
return this.request("PATCH", ENDPOINTS.AGENT_INSTRUCTIONS(orgId, agentId), req);
|
|
52179
|
+
}
|
|
52134
52180
|
// Member activity surfaces — chats the member participates in within this org,
|
|
52135
52181
|
// ordered by most recent activity. Powers the member profile Activity tab.
|
|
52136
52182
|
async getMemberChats(orgId, memberId, params) {
|
|
@@ -53474,6 +53520,22 @@ var ParallClient = class _ParallClient {
|
|
|
53474
53520
|
async getFeatureFlags(orgId) {
|
|
53475
53521
|
return this.request("GET", ENDPOINTS.FEATURE_FLAGS(orgId));
|
|
53476
53522
|
}
|
|
53523
|
+
// ---- Official Template catalog (org-contextual owner/admin reads + Hire) ----
|
|
53524
|
+
async listOfficialTemplates(orgId) {
|
|
53525
|
+
const response = await this.request("GET", ENDPOINTS.TEMPLATES(orgId));
|
|
53526
|
+
return response.templates ?? [];
|
|
53527
|
+
}
|
|
53528
|
+
async getOfficialTemplate(orgId, templateId) {
|
|
53529
|
+
return this.request("GET", ENDPOINTS.TEMPLATE(orgId, templateId));
|
|
53530
|
+
}
|
|
53531
|
+
async deployTemplate(orgId, request3) {
|
|
53532
|
+
return this.request("POST", ENDPOINTS.TEMPLATE_DEPLOYMENTS(orgId), request3, void 0, false, {
|
|
53533
|
+
timeoutMs: 185e3
|
|
53534
|
+
});
|
|
53535
|
+
}
|
|
53536
|
+
async getTemplateDeployment(orgId, deploymentId) {
|
|
53537
|
+
return this.request("GET", ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, deploymentId));
|
|
53538
|
+
}
|
|
53477
53539
|
// ---- Billing & Credits (org-scoped) ----
|
|
53478
53540
|
async getBilling(orgId) {
|
|
53479
53541
|
return this.request("GET", ENDPOINTS.BILLING(orgId));
|
|
@@ -55128,6 +55190,17 @@ function buildForkResultPrefix(results) {
|
|
|
55128
55190
|
}
|
|
55129
55191
|
|
|
55130
55192
|
// ts/agent-core/dist/prompt-fragments.js
|
|
55193
|
+
function identityFromMe(me) {
|
|
55194
|
+
return {
|
|
55195
|
+
userId: me.id,
|
|
55196
|
+
displayName: me.display_name,
|
|
55197
|
+
title: me.public_profile?.title || void 0,
|
|
55198
|
+
publicDescription: me.public_profile?.description || void 0,
|
|
55199
|
+
// `||` on purpose: an empty-string instructions must also fall back to
|
|
55200
|
+
// the deprecated description alias (empty means "unset" on this wire).
|
|
55201
|
+
instructions: me.agent_profile?.instructions || me.agent_profile?.description || void 0
|
|
55202
|
+
};
|
|
55203
|
+
}
|
|
55131
55204
|
var PRLL_IDENTITY_BASE = `## You on Parall
|
|
55132
55205
|
|
|
55133
55206
|
Parall is a shared workspace where humans and agents work side by side as equals.
|
|
@@ -55149,11 +55222,15 @@ function buildIdentity(agent) {
|
|
|
55149
55222
|
const name = sanitizeProfileField(agent.displayName);
|
|
55150
55223
|
const lines = [PRLL_IDENTITY_BASE, "", "### Your Parall Identity", ""];
|
|
55151
55224
|
lines.push(`You are **${name}** (\`prll://${agent.userId}\`).`);
|
|
55152
|
-
|
|
55153
|
-
|
|
55154
|
-
|
|
55155
|
-
|
|
55156
|
-
|
|
55225
|
+
const title = agent.title ? sanitizeProfileField(agent.title) : "";
|
|
55226
|
+
if (title)
|
|
55227
|
+
lines.push(`Title: ${title}`);
|
|
55228
|
+
const about = agent.publicDescription ? sanitizeProfileField(agent.publicDescription) : "";
|
|
55229
|
+
if (about)
|
|
55230
|
+
lines.push(`About: ${about}`);
|
|
55231
|
+
const instructions = sanitizeProfileBlock(agent.instructions ?? agent.description ?? "");
|
|
55232
|
+
if (instructions) {
|
|
55233
|
+
lines.push("", "### Private instructions from your organization admins", "", instructions);
|
|
55157
55234
|
}
|
|
55158
55235
|
lines.push("", `When you see \`${agent.userId}\` or \`prll://${agent.userId}\` in messages, mentions, or events \u2014 that's you.`);
|
|
55159
55236
|
return lines.join("\n");
|
|
@@ -58139,7 +58216,7 @@ var ParallAgentGateway = class {
|
|
|
58139
58216
|
return { action: "skip" };
|
|
58140
58217
|
if (chatInfo.type === "group" && chatInfo.agentRoutingMode !== "active") {
|
|
58141
58218
|
const mentions = content.mentions ?? [];
|
|
58142
|
-
const isMentioned = mentions.some((mention) => mention.user_id
|
|
58219
|
+
const isMentioned = mentions.some((mention) => mentionTargetsUser(mention.user_id, this.opts.agentUserId, "agent"));
|
|
58143
58220
|
if (!isMentioned)
|
|
58144
58221
|
return { action: "skip" };
|
|
58145
58222
|
}
|
|
@@ -59139,8 +59216,17 @@ parall whoami
|
|
|
59139
59216
|
parall members list # All org members (humans + agents)
|
|
59140
59217
|
parall agents list # Agents only
|
|
59141
59218
|
parall users get prll://usr_xxx # Get user details by ID
|
|
59219
|
+
parall members profile prll://usr_xxx # A member's public profile (title / about)
|
|
59220
|
+
parall agents instructions # Your own private Instructions (admin-maintained)
|
|
59142
59221
|
\`\`\`
|
|
59143
59222
|
|
|
59223
|
+
Every member carries an org-scoped public profile: \`title\` (role, e.g.
|
|
59224
|
+
"Platform Lead") and \`description\` (a short about). \`members list\` includes
|
|
59225
|
+
both \u2014 use them to route work to the right person or agent. Your own system
|
|
59226
|
+
prompt already contains your public profile and your private Instructions;
|
|
59227
|
+
you cannot edit either of them \u2014 if yours should change, DM a Human org
|
|
59228
|
+
admin and ask.
|
|
59229
|
+
|
|
59144
59230
|
Create a hosted agent when the user asks for a Parall-managed runtime. Hosted
|
|
59145
59231
|
provisioning is asynchronous: creation means the agent identity, API key, and
|
|
59146
59232
|
machine record were accepted, not that the runtime is online yet. Use \`--wait\`
|
|
@@ -62703,7 +62789,7 @@ async function getAgentMeWithLegacyFallback(client, orgId) {
|
|
|
62703
62789
|
throw err;
|
|
62704
62790
|
}
|
|
62705
62791
|
const user = await client.getMe();
|
|
62706
|
-
return { ...user, agent_profile: null };
|
|
62792
|
+
return { ...user, agent_profile: null, public_profile: null };
|
|
62707
62793
|
}
|
|
62708
62794
|
}
|
|
62709
62795
|
function resolveProviderEnv() {
|
|
@@ -62743,11 +62829,9 @@ async function main() {
|
|
|
62743
62829
|
ensureParallProvider(config.codexHome, config.apiUrl, agentLog);
|
|
62744
62830
|
agentLog.info("parall custom provider configured (Responses API HTTP/SSE mode)");
|
|
62745
62831
|
}
|
|
62746
|
-
|
|
62747
|
-
|
|
62748
|
-
|
|
62749
|
-
description: me.agent_profile?.description ?? void 0
|
|
62750
|
-
};
|
|
62832
|
+
let agentIdentity = identityFromMe(me);
|
|
62833
|
+
let lastIdentitySnapshot = JSON.stringify(agentIdentity);
|
|
62834
|
+
let lastKnownAgentProfile = me.agent_profile;
|
|
62751
62835
|
const runtimeKey = config.runtimeKey || buildCodexRuntimeKey(agentUserId);
|
|
62752
62836
|
const mainContextFilePath = contextFilePathForSession(config.stateDir, runtimeKey);
|
|
62753
62837
|
const sessionStateFilePath = sessionStateFilePathForRuntime(config.stateDir, runtimeKey);
|
|
@@ -62797,15 +62881,17 @@ async function main() {
|
|
|
62797
62881
|
});
|
|
62798
62882
|
const refreshPlatformConfig = async () => {
|
|
62799
62883
|
const updated = await configMgr.fetch();
|
|
62800
|
-
let
|
|
62801
|
-
|
|
62802
|
-
|
|
62803
|
-
|
|
62804
|
-
|
|
62805
|
-
|
|
62806
|
-
|
|
62884
|
+
let refreshedMe;
|
|
62885
|
+
try {
|
|
62886
|
+
refreshedMe = await getAgentMeWithLegacyFallback(client, config.orgId);
|
|
62887
|
+
} catch (err) {
|
|
62888
|
+
agentLog.warn(`platform config refresh: /agents/me refetch failed (keeping last-known identity): ${String(err)}`);
|
|
62889
|
+
}
|
|
62890
|
+
if (refreshedMe) {
|
|
62891
|
+
agentIdentity = identityFromMe(refreshedMe);
|
|
62892
|
+
lastKnownAgentProfile = refreshedMe.agent_profile;
|
|
62807
62893
|
}
|
|
62808
|
-
const isPin = deriveModelIsPin(updated,
|
|
62894
|
+
const isPin = deriveModelIsPin(updated, lastKnownAgentProfile);
|
|
62809
62895
|
adapter.updateConfig({
|
|
62810
62896
|
model: resolveRuntimeModel(isPin, updated.model, config.model) ?? null,
|
|
62811
62897
|
reasoningEffort: updated.thinkingEffort ?? config.reasoningEffort ?? null
|
|
@@ -62820,8 +62906,10 @@ async function main() {
|
|
|
62820
62906
|
promptWritten = false;
|
|
62821
62907
|
agentLog.warn(`system prompt refresh write failed (retrying next refresh): ${String(err)}`);
|
|
62822
62908
|
}
|
|
62823
|
-
|
|
62909
|
+
const identitySnapshot = JSON.stringify(agentIdentity);
|
|
62910
|
+
if (promptWritten && (joinedFragments !== lastCapabilityFragments || identitySnapshot !== lastIdentitySnapshot)) {
|
|
62824
62911
|
lastCapabilityFragments = joinedFragments;
|
|
62912
|
+
lastIdentitySnapshot = identitySnapshot;
|
|
62825
62913
|
adapter.requestProcessRestart();
|
|
62826
62914
|
}
|
|
62827
62915
|
};
|
package/bundle/parall-daemon.js
CHANGED
|
@@ -168,6 +168,12 @@ var init_constants = __esm({
|
|
|
168
168
|
ORG_MEMBER: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}`,
|
|
169
169
|
ORG_MEMBER_CHATS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/chats`,
|
|
170
170
|
ORG_MEMBER_TASKS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/tasks`,
|
|
171
|
+
// Org-scoped public profile (title / description). GET readable by every
|
|
172
|
+
// active member; PATCH is CAS-guarded (expected_version).
|
|
173
|
+
ORG_MEMBER_PROFILE: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}/profile`,
|
|
174
|
+
// Private agent Instructions — visibility gated server-side
|
|
175
|
+
// (agent self + Human org admin/owner). Never cached.
|
|
176
|
+
AGENT_INSTRUCTIONS: (orgId, agentId) => `${API_BASE}/orgs/${orgId}/agents/${agentId}/instructions`,
|
|
171
177
|
REF_SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/refs/search`,
|
|
172
178
|
// Direct messages (org-scoped, atomic find-or-create + send)
|
|
173
179
|
DM: (orgId) => `${API_BASE}/orgs/${orgId}/dm`,
|
|
@@ -451,6 +457,11 @@ var init_constants = __esm({
|
|
|
451
457
|
SEARCH: (orgId) => `${API_BASE}/orgs/${orgId}/search`,
|
|
452
458
|
// Feature flags (org-scoped, server-evaluated)
|
|
453
459
|
FEATURE_FLAGS: (orgId) => `${API_BASE}/orgs/${orgId}/feature-flags`,
|
|
460
|
+
// Team templates (org-scoped, owner/admin only)
|
|
461
|
+
TEMPLATES: (orgId) => `${API_BASE}/orgs/${orgId}/templates`,
|
|
462
|
+
TEMPLATE: (orgId, templateId) => `${API_BASE}/orgs/${orgId}/templates/${templateId}`,
|
|
463
|
+
TEMPLATE_DEPLOYMENTS: (orgId) => `${API_BASE}/orgs/${orgId}/template-deployments`,
|
|
464
|
+
TEMPLATE_DEPLOYMENT: (orgId, deploymentId) => `${API_BASE}/orgs/${orgId}/template-deployments/${deploymentId}`,
|
|
454
465
|
// Billing & Credits (org-scoped)
|
|
455
466
|
BILLING: (orgId) => `${API_BASE}/orgs/${orgId}/billing`,
|
|
456
467
|
BILLING_TRANSACTIONS: (orgId) => `${API_BASE}/orgs/${orgId}/billing/transactions`,
|
|
@@ -1015,6 +1026,30 @@ var init_client = __esm({
|
|
|
1015
1026
|
async updateOrgMember(orgId, userId, role) {
|
|
1016
1027
|
return this.request("PATCH", ENDPOINTS.ORG_MEMBER(orgId, userId), { role });
|
|
1017
1028
|
}
|
|
1029
|
+
/** Org-scoped public profile (title / description) of any active member. */
|
|
1030
|
+
async getMemberProfile(orgId, userId) {
|
|
1031
|
+
return this.request("GET", ENDPOINTS.ORG_MEMBER_PROFILE(orgId, userId));
|
|
1032
|
+
}
|
|
1033
|
+
/**
|
|
1034
|
+
* CAS full-replacement of a member's public profile. Humans edit their
|
|
1035
|
+
* own; Human org admins/owners edit agents'. A stale expected_version
|
|
1036
|
+
* gets 409 PROFILE_VERSION_CONFLICT with error.details.current_version.
|
|
1037
|
+
*/
|
|
1038
|
+
async updateMemberProfile(orgId, userId, req) {
|
|
1039
|
+
return this.request("PATCH", ENDPOINTS.ORG_MEMBER_PROFILE(orgId, userId), req);
|
|
1040
|
+
}
|
|
1041
|
+
/** Private agent Instructions — agent self or Human org admin/owner only. */
|
|
1042
|
+
async getAgentInstructions(orgId, agentId) {
|
|
1043
|
+
return this.request("GET", ENDPOINTS.AGENT_INSTRUCTIONS(orgId, agentId));
|
|
1044
|
+
}
|
|
1045
|
+
/**
|
|
1046
|
+
* CAS update of the private Instructions (Human org admin/owner only).
|
|
1047
|
+
* A stale expected_version gets 409 INSTRUCTIONS_VERSION_CONFLICT with
|
|
1048
|
+
* error.details.current_version.
|
|
1049
|
+
*/
|
|
1050
|
+
async updateAgentInstructions(orgId, agentId, req) {
|
|
1051
|
+
return this.request("PATCH", ENDPOINTS.AGENT_INSTRUCTIONS(orgId, agentId), req);
|
|
1052
|
+
}
|
|
1018
1053
|
// Member activity surfaces — chats the member participates in within this org,
|
|
1019
1054
|
// ordered by most recent activity. Powers the member profile Activity tab.
|
|
1020
1055
|
async getMemberChats(orgId, memberId, params) {
|
|
@@ -2358,6 +2393,22 @@ var init_client = __esm({
|
|
|
2358
2393
|
async getFeatureFlags(orgId) {
|
|
2359
2394
|
return this.request("GET", ENDPOINTS.FEATURE_FLAGS(orgId));
|
|
2360
2395
|
}
|
|
2396
|
+
// ---- Official Template catalog (org-contextual owner/admin reads + Hire) ----
|
|
2397
|
+
async listOfficialTemplates(orgId) {
|
|
2398
|
+
const response = await this.request("GET", ENDPOINTS.TEMPLATES(orgId));
|
|
2399
|
+
return response.templates ?? [];
|
|
2400
|
+
}
|
|
2401
|
+
async getOfficialTemplate(orgId, templateId) {
|
|
2402
|
+
return this.request("GET", ENDPOINTS.TEMPLATE(orgId, templateId));
|
|
2403
|
+
}
|
|
2404
|
+
async deployTemplate(orgId, request3) {
|
|
2405
|
+
return this.request("POST", ENDPOINTS.TEMPLATE_DEPLOYMENTS(orgId), request3, void 0, false, {
|
|
2406
|
+
timeoutMs: 185e3
|
|
2407
|
+
});
|
|
2408
|
+
}
|
|
2409
|
+
async getTemplateDeployment(orgId, deploymentId) {
|
|
2410
|
+
return this.request("GET", ENDPOINTS.TEMPLATE_DEPLOYMENT(orgId, deploymentId));
|
|
2411
|
+
}
|
|
2361
2412
|
// ---- Billing & Credits (org-scoped) ----
|
|
2362
2413
|
async getBilling(orgId) {
|
|
2363
2414
|
return this.request("GET", ENDPOINTS.BILLING(orgId));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parall/daemon",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.50.0",
|
|
4
4
|
"description": "Parall local agent runtime — daemon supervisor + bridge runtimes, bundled as standalone JS files",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"@aws-sdk/client-s3": "3.984.0",
|
|
34
34
|
"@pinixai/bb-browser-pro": "0.15.0",
|
|
35
35
|
"ws": "^8.18.0",
|
|
36
|
-
"@parall/agent-core": "1.
|
|
37
|
-
"@parall/sdk": "1.
|
|
38
|
-
"@parall/
|
|
39
|
-
"@parall/
|
|
40
|
-
"@parall/
|
|
36
|
+
"@parall/agent-core": "1.50.0",
|
|
37
|
+
"@parall/sdk": "1.50.0",
|
|
38
|
+
"@parall/claude-agent": "1.50.0",
|
|
39
|
+
"@parall/codex-agent": "1.50.0",
|
|
40
|
+
"@parall/openclaw-agent": "1.50.0"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@types/node": "^22.0.0",
|