Configuration
This page documents the public configuration types used by @interopio/io-assist-ng.
Installation Model
Before configuration, keep the package setup model clear:
- install
@interopio/io-assist-ng - install at least one platform package such as
@interopio/browseror@interopio/desktop - ensure the Angular peer dependencies are already present in the host application
- import
@interopio/io-assist-ng/styles.css
io.Assist NG publishes its non-Angular runtime requirements as package dependencies, so consumers should not be told to install every internal runtime dependency manually.
IoAssistStaticConfig
IoAssistStaticConfig is passed to provideIoAssist(...) at application bootstrap.
type IoAssistStaticConfig = {
connectConfig: IOConnectNgSettings;
aiWebConfig: AIWebConfig;
defaultAgentName?: string;
workingContext?: {
factory: IoIntelWorkingContextFactoryFunction;
config?: IoIntelWorkingContext.Config;
};
defaultPrompts?: IoAssistPromptCategory[];
};
Properties
| Property | Type | Required | Description |
|---|---|---|---|
connectConfig | IOConnectNgSettings | Yes | io.Connect Angular settings. Must include the platform setup your app uses |
aiWebConfig | AIWebConfig | Yes | Underlying AI Web configuration |
defaultAgentName | string | No | Agent name to select on startup |
workingContext | object | No | Working Context factory and configuration |
defaultPrompts | IoAssistPromptCategory[] | No | Prompt library entries shown in the assistant UI |
Required Minimum
At minimum, bootstrap config needs:
connectConfigaiWebConfig.agentServer.baseUrl
AIWebConfig
AIWebConfig is the io.Assist NG wrapper around the underlying AI Web configuration.
type AIWebConfig = {
agentServer: Omit<IoAiWeb.WebConfig['agentServer'], 'headers'>;
mcp?: IoAiWeb.WebConfig['mcp'];
};
Notes
- bootstrap config intentionally excludes
agentServer.headers - per-user headers belong in the dynamic config so they can be supplied after login
- MCP, remote servers, MCP Apps, and capability handlers all flow through
aiWebConfig.mcp
Example
aiWebConfig: {
agentServer: {
baseUrl: 'http://localhost:4111',
retries: 3,
backoffMs: 1000,
maxBackoffMs: 10000,
},
mcp: {
clientsConfig: {
capabilities: {},
},
},
}
IoAssistDynamicConfig
IoAssistDynamicConfig is passed as [config] to <io-assist>.
type IoAssistDynamicConfig = {
user: IoAssistUserConfig;
agentServer?: {
headers?: Record<string, string>;
};
};
Properties
| Property | Type | Required | Description |
|---|---|---|---|
user.id | string | Yes | Unique user identifier used to scope thread history |
user.name | string | No | Display name shown in the assistant UI |
agentServer.headers | Record<string, string> | No | Per-user request headers such as auth tokens |
Why the Split Matters
This config is designed for values that are only known at runtime:
- the current authenticated user
- per-user authorization headers
- values that may change without re-bootstrapping Angular providers
Example
protected readonly dynamicConfig = computed<IoAssistDynamicConfig>(() => ({
user: {
id: this.loginSession.loggedInUsername(),
name: this.loginSession.loggedInUsername() || undefined,
},
agentServer: {
headers: {
Authorization: `Bearer ${authSecret}`,
},
},
}));
IoAssistPrompt and IoAssistPromptCategory
Prompt library data uses these public types:
type IoAssistPrompt = {
name: string;
prompt: string;
iconResource?: IconResource;
};
type IoAssistPromptCategory = {
category?: string;
prompts: IoAssistPrompt[];
};
IconResource
type IconResource = {
type: 'svg' | 'url' | 'data-url';
data: string;
};
Notes
- inline SVGs are supported
- absolute URLs are supported
- data URLs are supported
- relative file paths are not the intended public pattern for consumer apps
Example
defaultPrompts: [
{
category: 'General',
prompts: [
{
name: 'Summarize',
prompt: 'Please summarize the following content:',
},
{
name: 'Explain',
prompt: 'Please explain this in simple terms:',
iconResource: {
type: 'svg',
data: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d=\"...\"/></svg>',
},
},
],
},
]
Working Context Configuration
When enabled, workingContext uses the same factory-and-config pattern as the standalone Working Context package.
workingContext: {
factory: IoIntelWorkingContextFactory,
config: {
schema: {
clientId: {
type: 'string',
source: {
context: {
location: { workspace: { target: 'my' } },
path: 'clientId',
},
},
},
},
},
}
For the schema model itself, see Working Context Schema Configuration.
Stylesheet Requirement
The component styles are exposed through the package export:
@import "@interopio/io-assist-ng/styles.css";
Or through the Angular build styles array:
"styles": [
"node_modules/@interopio/io-assist-ng/styles.css",
"src/styles.css"
]
Without the stylesheet import, the component will not render as intended.