Skip to main content

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/browser or @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

PropertyTypeRequiredDescription
connectConfigIOConnectNgSettingsYesio.Connect Angular settings. Must include the platform setup your app uses
aiWebConfigAIWebConfigYesUnderlying AI Web configuration
defaultAgentNamestringNoAgent name to select on startup
workingContextobjectNoWorking Context factory and configuration
defaultPromptsIoAssistPromptCategory[]NoPrompt library entries shown in the assistant UI

Required Minimum

At minimum, bootstrap config needs:

  • connectConfig
  • aiWebConfig.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

PropertyTypeRequiredDescription
user.idstringYesUnique user identifier used to scope thread history
user.namestringNoDisplay name shown in the assistant UI
agentServer.headersRecord<string, string>NoPer-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.