@promptbook/cli 0.112.0-135 → 0.112.0-137

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 (64) hide show
  1. package/README.md +20 -0
  2. package/apps/agents-server/README.md +0 -1
  3. package/apps/agents-server/src/app/admin/metadata/MetadataClient.tsx +246 -15
  4. package/apps/agents-server/src/app/admin/update/UpdateClient.tsx +237 -4
  5. package/apps/agents-server/src/app/api/admin/update/log/route.ts +42 -0
  6. package/apps/agents-server/src/app/api/agents/export/route.ts +41 -0
  7. package/apps/agents-server/src/app/api/agents/import/route.ts +168 -0
  8. package/apps/agents-server/src/app/api/federated-agents/route.ts +1 -1
  9. package/apps/agents-server/src/app/api/internal/agent-runner-limits/route.ts +2 -1
  10. package/apps/agents-server/src/app/api/internal/user-chat-jobs/run/route.ts +2 -1
  11. package/apps/agents-server/src/app/api/metadata/export/route.ts +34 -0
  12. package/apps/agents-server/src/app/api/metadata/import/route.ts +46 -0
  13. package/apps/agents-server/src/app/layout.tsx +1 -1
  14. package/apps/agents-server/src/components/Homepage/AgentsList.tsx +31 -1
  15. package/apps/agents-server/src/components/Homepage/AgentsListHeader.tsx +60 -1
  16. package/apps/agents-server/src/components/Homepage/useAgentsListImportExportState.ts +523 -0
  17. package/apps/agents-server/src/components/Homepage/useAgentsListState.ts +16 -0
  18. package/apps/agents-server/src/database/metadataDefaults.ts +0 -21
  19. package/apps/agents-server/src/database/seedCoreAgents.ts +235 -0
  20. package/apps/agents-server/src/database/seedDefaultAgents.ts +32 -1
  21. package/apps/agents-server/src/search/createDefaultServerSearchProviders/createFederatedAgentsSearchProvider.ts +1 -1
  22. package/apps/agents-server/src/tools/$provideAgentCollectionForServer.ts +2 -9
  23. package/apps/agents-server/src/utils/agentsTransfer/createAgentsExportZipStream.ts +68 -0
  24. package/apps/agents-server/src/utils/agentsTransfer/importAgentsFromFiles.ts +852 -0
  25. package/apps/agents-server/src/utils/backup/createBooksBackupZipStream.ts +15 -2
  26. package/apps/agents-server/src/utils/defaultAgents/loadDefaultAgentBooks.ts +46 -4
  27. package/apps/agents-server/src/utils/getFederatedServers.ts +3 -74
  28. package/apps/agents-server/src/utils/getWellKnownAgentUrl.ts +10 -4
  29. package/apps/agents-server/src/utils/localChatRunner/processLocalUserChatJob.ts +1 -1
  30. package/apps/agents-server/src/utils/metadataConfigurationTransfer.ts +426 -0
  31. package/apps/agents-server/src/utils/serverManagement/createManagedServer/bootstrapManagedServer.ts +2 -5
  32. package/apps/agents-server/src/utils/serverManagement/createManagedServer/seedServerCoreAgents.ts +162 -0
  33. package/apps/agents-server/src/utils/session.ts +2 -1
  34. package/apps/agents-server/src/utils/vpsSelfUpdate.ts +110 -0
  35. package/esm/index.es.js +1 -1
  36. package/esm/index.es.js.map +1 -1
  37. package/esm/src/_packages/core.index.d.ts +0 -2
  38. package/esm/src/utils/isTimingSafeEqualString.d.ts +25 -0
  39. package/esm/src/version.d.ts +1 -1
  40. package/package.json +1 -1
  41. package/servers.ts +1 -16
  42. package/src/_packages/core.index.ts +0 -2
  43. package/src/commitments/_common/teamInternalAgentAccess.ts +2 -1
  44. package/src/other/templates/getTemplatesPipelineCollection.ts +789 -716
  45. package/src/utils/isTimingSafeEqualString.ts +43 -0
  46. package/src/version.ts +2 -2
  47. package/src/versions.txt +2 -0
  48. package/umd/index.umd.js +1 -1
  49. package/umd/index.umd.js.map +1 -1
  50. package/umd/src/_packages/core.index.d.ts +0 -2
  51. package/umd/src/utils/isTimingSafeEqualString.d.ts +25 -0
  52. package/umd/src/version.d.ts +1 -1
  53. package/apps/agents-server/src/utils/defaultFederatedAgents/DefaultFederatedAgentsSyncOptions.ts +0 -9
  54. package/apps/agents-server/src/utils/defaultFederatedAgents/ensureDefaultFederatedAgentExists.ts +0 -277
  55. package/apps/agents-server/src/utils/defaultFederatedAgents/fetchCoreOrganizationPayload.ts +0 -39
  56. package/apps/agents-server/src/utils/defaultFederatedAgents/fetchFederatedAgentBook.ts +0 -43
  57. package/apps/agents-server/src/utils/defaultFederatedAgents/fetchWithDefaultFederatedAgentTimeout.ts +0 -28
  58. package/apps/agents-server/src/utils/defaultFederatedAgents/getDefaultFederatedAgentSyncPool.ts +0 -38
  59. package/apps/agents-server/src/utils/defaultFederatedAgents/loadActiveLocalAgentIdsByNormalizedName.ts +0 -41
  60. package/apps/agents-server/src/utils/defaultFederatedAgents/loadDefaultFederatedAgentSyncMetadata.ts +0 -76
  61. package/apps/agents-server/src/utils/defaultFederatedAgents/quoteIdentifier.ts +0 -11
  62. package/apps/agents-server/src/utils/defaultFederatedAgents/scheduleDefaultFederatedAgentsSync.ts +0 -88
  63. package/apps/agents-server/src/utils/defaultFederatedAgents/selectDefaultFederatedAgentsFromOrganizationPayload.ts +0 -181
  64. package/apps/agents-server/src/utils/defaultFederatedAgents/synchronizeDefaultFederatedAgents.ts +0 -77
@@ -221,7 +221,6 @@ import { normalizeChatAttachments } from '../utils/chat/chatAttachments/normaliz
221
221
  import { resolveChatAttachmentContents } from '../utils/chat/chatAttachments/resolveChatAttachmentContents';
222
222
  import { aboutPromptbookInformation } from '../utils/misc/aboutPromptbookInformation';
223
223
  import { $generateBookBoilerplate } from '../utils/random/$generateBookBoilerplate';
224
- import { CORE_AGENTS_SERVER } from '../../servers';
225
224
  import { CORE_AGENTS_SERVER_WELL_KNOWN_AGENT_NAMES } from '../../servers';
226
225
  import { PUBLIC_AGENTS_SERVERS } from '../../servers';
227
226
  export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
@@ -447,6 +446,5 @@ export { normalizeChatAttachments };
447
446
  export { resolveChatAttachmentContents };
448
447
  export { aboutPromptbookInformation };
449
448
  export { $generateBookBoilerplate };
450
- export { CORE_AGENTS_SERVER };
451
449
  export { CORE_AGENTS_SERVER_WELL_KNOWN_AGENT_NAMES };
452
450
  export { PUBLIC_AGENTS_SERVERS };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Compares two strings in constant time to prevent timing attacks.
3
+ *
4
+ * Plain JavaScript `===` / `!==` string comparisons short-circuit on the first
5
+ * byte that differs, which lets a remote attacker who can measure response
6
+ * timing recover the expected value one byte at a time. This helper performs
7
+ * the comparison through Node's `timingSafeEqual`, which always inspects every
8
+ * byte of the equal-length buffers.
9
+ *
10
+ * Returning `false` early when the byte lengths differ does not expose
11
+ * character content — only length — which is an acceptable trade-off, since
12
+ * `timingSafeEqual` requires equal-length buffers and length is typically not
13
+ * secret.
14
+ *
15
+ * `null` and `undefined` inputs are treated as non-matching so callers can
16
+ * forward raw request values (for example `request.headers.get(name)`) without
17
+ * an extra guard.
18
+ *
19
+ * @param candidate - Value supplied by the caller (for example a request header or cookie).
20
+ * @param expected - Value to compare against (for example a configured secret).
21
+ * @returns `true` when both values are strings of equal length with identical bytes.
22
+ *
23
+ * @private internal helper function
24
+ */
25
+ export declare function isTimingSafeEqualString(candidate: string | null | undefined, expected: string | null | undefined): boolean;
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.112.0-133`).
18
+ * It follows semantic versioning (e.g., `0.112.0-136`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/cli",
3
- "version": "0.112.0-135",
3
+ "version": "0.112.0-137",
4
4
  "description": "Promptbook: Create persistent AI agents that turn your company's scattered knowledge into action",
5
5
  "private": false,
6
6
  "sideEffects": false,
package/servers.ts CHANGED
@@ -32,21 +32,7 @@ type ServerConfiguration = {
32
32
  };
33
33
 
34
34
  /**
35
- * Core Promptbook server configuration
36
- *
37
- * Used for "Adam" agent which is built in as default ancestor for new agents and other well known agents
38
- *
39
- * @public exported from `@promptbook/core`
40
- */
41
- export const CORE_AGENTS_SERVER: ServerConfiguration = {
42
- title: 'Promptbook Core',
43
- description: `Core Promptbook server used for Adam agent which is built in as default ancestor for new agents and other well known agents.`,
44
- owner: PROMPTBOOK_LEGAL_ENTITY,
45
- url: 'https://core.ptbk.io/',
46
- };
47
-
48
- /**
49
- * Names of well known agents hosted on Core Promptbook server
35
+ * Names of well known agents bundled in the local `.core` folder of every Agents Server
50
36
  *
51
37
  * - `Adam`: The default ancestor agent for new agents
52
38
  * - `Teacher`: Agent that knows book syntax and can help with self-learning
@@ -74,7 +60,6 @@ export const CORE_AGENTS_SERVER_WELL_KNOWN_AGENT_NAMES = {
74
60
  * @public exported from `@promptbook/core`
75
61
  */
76
62
  export const PUBLIC_AGENTS_SERVERS: Array<ServerConfiguration> = [
77
- CORE_AGENTS_SERVER,
78
63
  {
79
64
  title: 'Promptbook Gallery',
80
65
  description: `Gallery of ideas, AI professions,... like AI Agenta photobank.`,
@@ -224,7 +224,6 @@ import { normalizeChatAttachments } from '../utils/chat/chatAttachments/normaliz
224
224
  import { resolveChatAttachmentContents } from '../utils/chat/chatAttachments/resolveChatAttachmentContents';
225
225
  import { aboutPromptbookInformation } from '../utils/misc/aboutPromptbookInformation';
226
226
  import { $generateBookBoilerplate } from '../utils/random/$generateBookBoilerplate';
227
- import { CORE_AGENTS_SERVER } from '../../servers';
228
227
  import { CORE_AGENTS_SERVER_WELL_KNOWN_AGENT_NAMES } from '../../servers';
229
228
  import { PUBLIC_AGENTS_SERVERS } from '../../servers';
230
229
 
@@ -456,6 +455,5 @@ export { normalizeChatAttachments };
456
455
  export { resolveChatAttachmentContents };
457
456
  export { aboutPromptbookInformation };
458
457
  export { $generateBookBoilerplate };
459
- export { CORE_AGENTS_SERVER };
460
458
  export { CORE_AGENTS_SERVER_WELL_KNOWN_AGENT_NAMES };
461
459
  export { PUBLIC_AGENTS_SERVERS };
@@ -1,4 +1,5 @@
1
1
  import CryptoJS from 'crypto-js';
2
+ import { isTimingSafeEqualString } from '../../utils/isTimingSafeEqualString';
2
3
 
3
4
  /**
4
5
  * Header used for same-server TEAM calls that may access private teammate agents.
@@ -79,7 +80,7 @@ export function isTeamInternalAgentAccessToken(value: string | null | undefined)
79
80
  const expectedToken = resolveTeamInternalAgentAccessToken();
80
81
  const providedToken = normalizeSecret(value);
81
82
 
82
- return Boolean(expectedToken && providedToken && providedToken === expectedToken);
83
+ return Boolean(expectedToken && providedToken && isTimingSafeEqualString(providedToken, expectedToken));
83
84
  }
84
85
 
85
86
  /**