Class: PackDefinitionBuilder¶
Defined in: builder.ts:58
A class that assists in constructing a pack definition. Use newPack to create one.
Implements¶
Constructors¶
Constructor¶
new PackDefinitionBuilder(
definition?):PackDefinitionBuilder
Defined in: builder.ts:136
Constructs a PackDefinitionBuilder. However, sdk.newPack() should be used instead
rather than constructing a builder directly.
Parameters¶
| Parameter | Type |
|---|---|
definition? |
Partial<PackVersionDefinition> |
Returns¶
PackDefinitionBuilder
Properties¶
defaultAuthentication?¶
optionaldefaultAuthentication:Authentication
Defined in: builder.ts:111
See PackVersionDefinition.defaultAuthentication.
Implementation of¶
PackDefinition.defaultAuthentication
formats¶
formats:
Format[]
Defined in: builder.ts:66
See PackVersionDefinition.formats.
Implementation of¶
formulaNamespace?¶
optionalformulaNamespace:string
Defined in: builder.ts:128
Deprecated¶
Implementation of¶
PackDefinition.formulaNamespace
formulas¶
formulas:
Formula[]
Defined in: builder.ts:62
See PackVersionDefinition.formulas.
Implementation of¶
networkDomains¶
networkDomains:
string[]
Defined in: builder.ts:101
See PackVersionDefinition.networkDomains.
Implementation of¶
skillEntrypoints?¶
optionalskillEntrypoints:SkillEntrypoints
Defined in: builder.ts:79
See PackVersionDefinition.skillEntrypoints.
Deprecated¶
No longer used, now that agents are connectors.
Implementation of¶
PackDefinition.skillEntrypoints
skills¶
skills:
Skill[]
Defined in: builder.ts:74
See PackVersionDefinition.skills.
Implementation of¶
syncTables¶
syncTables:
SyncTable[]
Defined in: builder.ts:70
See PackVersionDefinition.syncTables.
Implementation of¶
systemConnectionAuthentication?¶
optionalsystemConnectionAuthentication:SystemAuthentication
Defined in: builder.ts:115
See PackVersionDefinition.systemConnectionAuthentication.
Implementation of¶
PackDefinition.systemConnectionAuthentication
version?¶
optionalversion:string
Defined in: builder.ts:126
See PackVersionDefinition.version.
Methods¶
addColumnFormat()¶
addColumnFormat(
format):this
Defined in: builder.ts:292
Adds a column format definition to this pack.
In the web editor, the /ColumnFormat shortcut will insert a snippet of a skeleton format.
Example¶
pack.addColumnFormat({
name: 'MyColumn',
formulaName: 'MyFormula',
});
Only supported in Superhuman Docs.
Parameters¶
| Parameter | Type |
|---|---|
format |
Format |
Returns¶
this
addDynamicSyncTable()¶
addDynamicSyncTable<
K,L,ParamDefsT,SchemaT,ContextT,PermissionsContextT>(definition):this
Defined in: builder.ts:261
Adds a dynamic sync table definition to this pack.
In the web editor, the /DynamicSyncTable shortcut will insert a snippet of a skeleton sync table.
Example¶
pack.addDynamicSyncTable({
name: "MySyncTable",
getName: async funciton (context) => {
const response = await context.fetcher.fetch({method: "GET", url: context.sync.dynamicUrl});
return response.body.name;
},
getName: async function (context) => {
const response = await context.fetcher.fetch({method: "GET", url: context.sync.dynamicUrl});
return response.body.browserLink;
},
...
});
Type Parameters¶
| Type Parameter |
|---|
K extends string |
L extends string |
ParamDefsT extends ParamDefs |
SchemaT extends ObjectSchemaDefinition<K, L> |
ContextT extends SyncExecutionContext<any, any, any> |
PermissionsContextT extends SyncPassthroughData |
Parameters¶
| Parameter | Type |
|---|---|
definition |
DynamicSyncTableOptions<K, L, ParamDefsT, SchemaT, ContextT, PermissionsContextT> |
Returns¶
this
addFormula()¶
addFormula<
ParamDefsT,ResultT,SchemaT>(definition):this
Defined in: builder.ts:193
Adds a formula definition to this pack.
In the web editor, the /Formula shortcut will insert a snippet of a skeleton formula.
Example¶
pack.addFormula({
resultType: ValueType.String,
name: 'MyFormula',
description: 'My description.',
parameters: [
makeParameter({
type: ParameterType.String,
name: 'myParam',
description: 'My param description.',
}),
],
execute: async ([param]) => {
return `Hello ${param}`;
},
});
Type Parameters¶
| Type Parameter |
|---|
ParamDefsT extends ParamDefs |
ResultT extends ValueType |
SchemaT extends Schema |
Parameters¶
| Parameter | Type |
|---|---|
definition |
object & FormulaDefinitionOptions<ParamDefsT, ResultT, SchemaT> |
Returns¶
this
addMCPServer()¶
addMCPServer(
server):this
Defined in: builder.ts:330
Adds an MCP server to this pack.
Example¶
pack.addMCPServer({name: 'MyMCPServer', endpointUrl: 'https://my-mcp-server.com'});
Only supported in Superhuman Go.
Parameters¶
| Parameter | Type |
|---|---|
server |
MCPServer |
Returns¶
this
addNetworkDomain()¶
addNetworkDomain(...
domain):this
Defined in: builder.ts:541
Adds the domain that this pack makes HTTP requests to. For example, if your pack makes HTTP requests to "api.example.com", use "example.com" as your network domain.
If your pack make HTTP requests, it must declare a network domain, for security purposes. The platform enforces that your pack cannot make requests to any undeclared domains.
You are allowed one network domain per pack by default. If your pack needs to connect to multiple domains, contact Superhuman for approval.
Example¶
pack.addNetworkDomain('example.com');
Parameters¶
| Parameter | Type |
|---|---|
...domain |
string[] |
Returns¶
this
addSkill()¶
addSkill(
skill):this
Defined in: builder.ts:315
Adds a skill definition to this pack.
In the web editor, the /Skill shortcut will insert a snippet of a skeleton skill.
Example¶
pack.addSkill({
name: "MySkill",
displayName: "My Display Name",
description: "My description.",
prompt: `My prompt.`,
tools: [
{ type: sdk.ToolType.Pack },
],
});
Parameters¶
| Parameter | Type |
|---|---|
skill |
Skill |
Returns¶
this
addSuggestedPrompt()¶
addSuggestedPrompt(
prompt):this
Defined in: builder.ts:426
Adds a suggested prompt that appears as a button when the agent is opened in chat.
Example¶
pack.addSuggestedPrompt({
name: "TicketStatus",
displayName: "Check ticket status",
prompt: `
Show me the status of all open support tickets.
`,
});
Deprecated¶
No longer used, now that agents are connectors.
Parameters¶
| Parameter | Type |
|---|---|
prompt |
SuggestedPrompt |
Returns¶
this
addSyncTable()¶
addSyncTable<
K,L,ParamDefsT,SchemaT,ContextT,PermissionsContextT>(definition):this
Defined in: builder.ts:223
Adds a sync table definition to this pack.
In the web editor, the /SyncTable shortcut will insert a snippet of a skeleton sync table.
Example¶
pack.addSyncTable({
name: 'MySyncTable',
identityName: 'EntityName',
schema: sdk.makeObjectSchema({
...
}),
formula: {
...
},
});
Type Parameters¶
| Type Parameter |
|---|
K extends string |
L extends string |
ParamDefsT extends ParamDefs |
SchemaT extends ObjectSchema<K, L> |
ContextT extends SyncExecutionContext<any, any, any> |
PermissionsContextT extends SyncPassthroughData |
Parameters¶
| Parameter | Type |
|---|---|
definition |
SyncTableOptions<K, L, ParamDefsT, SchemaT, ContextT, PermissionsContextT> |
Returns¶
this
setBenchInitializationSkill()¶
setBenchInitializationSkill(
skill):this
Defined in: builder.ts:388
Sets the skill used when the agent is first opened in the agent bench. All fields are optional - omitted fields will use defaults at runtime.
Example¶
pack.setBenchInitializationSkill({
prompt: `
Say hello to the user, referencing the time of day and a friendly nickname.
For example: 10AM, Kramer => "Good morning K-man!"
`,
tools: [],
});
Deprecated¶
No longer used, now that agents are connectors.
Parameters¶
| Parameter | Type |
|---|---|
skill |
PartialSkillDef |
Returns¶
this
setChatSkill()¶
setChatSkill(
skill):this
Defined in: builder.ts:366
Sets the chat skill for agent.
The chat skill controls the behavior when users chat with the agent. It defines the prompts, available tools, and optionally the model to use.
All fields are optional — omitted fields use defaults at runtime. When tools is omitted,
the agent automatically gets:
- ToolType.Pack — the pack's own formulas
- ToolType.Knowledge — search over the pack's sync table data (when sync tables exist)
Specifying tools replaces these defaults entirely.
Example¶
// Override just the prompt — default tools are preserved
pack.setChatSkill({
prompt: "End every reply with 'Moo!'",
});
// Override tools — replaces the defaults
pack.setChatSkill({
tools: [
{ type: sdk.ToolType.Pack },
{ type: sdk.ToolType.ContactResolution },
],
});
Deprecated¶
No longer used, now that agents are connectors.
Parameters¶
| Parameter | Type |
|---|---|
skill |
PartialSkillDef |
Returns¶
this
setSkillEntrypoints()¶
setSkillEntrypoints(
entrypoints):this
Defined in: builder.ts:405
Maps entrypoints to skills in the Pack.
Example¶
pack.setSkillEntrypoints({
defaultChat: { skillName: "MySkill" },
});
Deprecated¶
No longer used, now that agents are connectors.
Parameters¶
| Parameter | Type |
|---|---|
entrypoints |
SkillEntrypoints |
Returns¶
this
setSystemAuthentication()¶
setSystemAuthentication(
systemAuthentication):this
Defined in: builder.ts:501
Sets this pack to use authentication provided by you as the maker of this pack.
You will need to register credentials to use with this pack. When users use the pack, their requests will be authenticated with those system credentials, they need not register their own account.
In the web editor, the /SystemAuthentication shortcut will insert a snippet of a skeleton
authentication definition.
Example¶
pack.setSystemAuthentication({
type: AuthenticationType.HeaderBearerToken,
});
Parameters¶
| Parameter | Type |
|---|---|
systemAuthentication |
SystemAuthenticationDef |
Returns¶
this
setUserAuthentication()¶
setUserAuthentication(
authDef):this
Defined in: builder.ts:469
Sets this pack to use authentication for individual users, using the authentication method is the given definition.
Each user will need to register an account in order to use this pack.
In the web editor, the /UserAuthentication shortcut will insert a snippet of a skeleton
authentication definition.
By default, this will set a default connection (account) requirement, making a user account
required to invoke all formulas in this pack unless you specify differently on a particular
formula. To change the default, you can pass a defaultConnectionRequirement option into
this method.
Example¶
pack.setUserAuthentication({
type: AuthenticationType.HeaderBearerToken,
});
Parameters¶
| Parameter | Type |
|---|---|
authDef |
UserAuthenticationDef |
Returns¶
this
setVersion()¶
setVersion(
version):this
Defined in: builder.ts:559
Sets the semantic version of this pack version, e.g. '1.2.3'.
This is optional, and you only need to provide a version if you are manually doing semantic versioning, or using the CLI. If using the web editor, you can omit this and the web editor will automatically provide an appropriate semantic version each time you build a version.
Example¶
pack.setVersion('1.2.3');
Parameters¶
| Parameter | Type |
|---|---|
version |
string |
Returns¶
this