ultracode-shared 1.3.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.
Files changed (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +30 -0
  3. package/dist/constants.d.ts +33 -0
  4. package/dist/constants.d.ts.map +1 -0
  5. package/dist/constants.js +37 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/errors.d.ts +113 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/errors.js +155 -0
  10. package/dist/errors.js.map +1 -0
  11. package/dist/events/EventBus.d.ts +36 -0
  12. package/dist/events/EventBus.d.ts.map +1 -0
  13. package/dist/events/EventBus.js +83 -0
  14. package/dist/events/EventBus.js.map +1 -0
  15. package/dist/index.d.ts +30 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +34 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/logger.d.ts +65 -0
  20. package/dist/logger.d.ts.map +1 -0
  21. package/dist/logger.js +74 -0
  22. package/dist/logger.js.map +1 -0
  23. package/dist/types/agent.d.ts +68 -0
  24. package/dist/types/agent.d.ts.map +1 -0
  25. package/dist/types/agent.js +9 -0
  26. package/dist/types/agent.js.map +1 -0
  27. package/dist/types/config.d.ts +265 -0
  28. package/dist/types/config.d.ts.map +1 -0
  29. package/dist/types/config.js +103 -0
  30. package/dist/types/config.js.map +1 -0
  31. package/dist/types/events.d.ts +78 -0
  32. package/dist/types/events.d.ts.map +1 -0
  33. package/dist/types/events.js +10 -0
  34. package/dist/types/events.js.map +1 -0
  35. package/dist/types/memory.d.ts +53 -0
  36. package/dist/types/memory.d.ts.map +1 -0
  37. package/dist/types/memory.js +9 -0
  38. package/dist/types/memory.js.map +1 -0
  39. package/dist/types/provider.d.ts +129 -0
  40. package/dist/types/provider.d.ts.map +1 -0
  41. package/dist/types/provider.js +10 -0
  42. package/dist/types/provider.js.map +1 -0
  43. package/dist/types/tool.d.ts +122 -0
  44. package/dist/types/tool.d.ts.map +1 -0
  45. package/dist/types/tool.js +11 -0
  46. package/dist/types/tool.js.map +1 -0
  47. package/dist/types/versioning.d.ts +141 -0
  48. package/dist/types/versioning.d.ts.map +1 -0
  49. package/dist/types/versioning.js +8 -0
  50. package/dist/types/versioning.js.map +1 -0
  51. package/dist/utils/async.d.ts +17 -0
  52. package/dist/utils/async.d.ts.map +1 -0
  53. package/dist/utils/async.js +45 -0
  54. package/dist/utils/async.js.map +1 -0
  55. package/dist/utils/id.d.ts +13 -0
  56. package/dist/utils/id.d.ts.map +1 -0
  57. package/dist/utils/id.js +17 -0
  58. package/dist/utils/id.js.map +1 -0
  59. package/dist/utils/index.d.ts +11 -0
  60. package/dist/utils/index.d.ts.map +1 -0
  61. package/dist/utils/index.js +10 -0
  62. package/dist/utils/index.js.map +1 -0
  63. package/dist/utils/math.d.ts +15 -0
  64. package/dist/utils/math.d.ts.map +1 -0
  65. package/dist/utils/math.js +25 -0
  66. package/dist/utils/math.js.map +1 -0
  67. package/dist/utils/object.d.ts +36 -0
  68. package/dist/utils/object.d.ts.map +1 -0
  69. package/dist/utils/object.js +122 -0
  70. package/dist/utils/object.js.map +1 -0
  71. package/dist/utils/serializeError.d.ts +15 -0
  72. package/dist/utils/serializeError.d.ts.map +1 -0
  73. package/dist/utils/serializeError.js +69 -0
  74. package/dist/utils/serializeError.js.map +1 -0
  75. package/dist/utils/truncate.d.ts +29 -0
  76. package/dist/utils/truncate.d.ts.map +1 -0
  77. package/dist/utils/truncate.js +42 -0
  78. package/dist/utils/truncate.js.map +1 -0
  79. package/package.json +39 -0
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Logging contract for UltraCode.
3
+ *
4
+ * Components receive a {@link Logger} via their context (e.g. {@link ToolContext})
5
+ * rather than reaching for a global. Two reference implementations are provided:
6
+ * {@link ConsoleLogger} (level-filtered, optionally silent) and {@link NoopLogger}
7
+ * (discards everything — ideal for tests and library embedding).
8
+ */
9
+ /** Structured metadata attached to a log line. JSON-safe by convention. */
10
+ export type LogMeta = Record<string, unknown>;
11
+ /** Ordered log severities, lowest to highest. */
12
+ export type LogLevel = "debug" | "info" | "warn" | "error";
13
+ /**
14
+ * Minimal structured logger. All methods are non-throwing and fire-and-forget;
15
+ * a logger MUST NOT propagate I/O errors to its callers.
16
+ */
17
+ export interface Logger {
18
+ debug(msg: string, meta?: LogMeta): void;
19
+ info(msg: string, meta?: LogMeta): void;
20
+ warn(msg: string, meta?: LogMeta): void;
21
+ error(msg: string, meta?: LogMeta): void;
22
+ }
23
+ /** Sink abstraction so {@link ConsoleLogger} stays testable without stubbing globals. */
24
+ export interface LogSink {
25
+ debug(msg: string, meta?: LogMeta): void;
26
+ info(msg: string, meta?: LogMeta): void;
27
+ warn(msg: string, meta?: LogMeta): void;
28
+ error(msg: string, meta?: LogMeta): void;
29
+ }
30
+ /** Options for {@link ConsoleLogger}. */
31
+ export interface ConsoleLoggerOptions {
32
+ /** Minimum level to emit. Lines below this are dropped. Defaults to `"info"`. */
33
+ level?: LogLevel;
34
+ /** When `true`, suppresses all output regardless of level. Defaults to `false`. */
35
+ silent?: boolean;
36
+ /** Output sink. Defaults to the global `console`. */
37
+ sink?: LogSink;
38
+ }
39
+ /**
40
+ * Level-filtered logger writing to a {@link LogSink} (the global `console` by
41
+ * default). Honours a `silent` flag for fully suppressed output.
42
+ */
43
+ export declare class ConsoleLogger implements Logger {
44
+ private level;
45
+ private silent;
46
+ private readonly sink;
47
+ constructor(options?: ConsoleLoggerOptions);
48
+ /** Change the minimum emitted level at runtime. */
49
+ setLevel(level: LogLevel): void;
50
+ /** Toggle silent mode at runtime. */
51
+ setSilent(silent: boolean): void;
52
+ private enabled;
53
+ debug(msg: string, meta?: LogMeta): void;
54
+ info(msg: string, meta?: LogMeta): void;
55
+ warn(msg: string, meta?: LogMeta): void;
56
+ error(msg: string, meta?: LogMeta): void;
57
+ }
58
+ /** A {@link Logger} that discards every message. */
59
+ export declare class NoopLogger implements Logger {
60
+ debug(): void;
61
+ info(): void;
62
+ warn(): void;
63
+ error(): void;
64
+ }
65
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,2EAA2E;AAC3E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,iDAAiD;AACjD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1C;AAUD,yFAAyF;AACzF,MAAM,WAAW,OAAO;IACtB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CAC1C;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,mFAAmF;IACnF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;gBAEnB,OAAO,GAAE,oBAAyB;IAM9C,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B,qCAAqC;IACrC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIhC,OAAO,CAAC,OAAO;IAKf,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAIxC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAIvC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAIvC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;CAGzC;AAED,oDAAoD;AACpD,qBAAa,UAAW,YAAW,MAAM;IACvC,KAAK,IAAI,IAAI;IAGb,IAAI,IAAI,IAAI;IAGZ,IAAI,IAAI,IAAI;IAGZ,KAAK,IAAI,IAAI;CAGd"}
package/dist/logger.js ADDED
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Logging contract for UltraCode.
3
+ *
4
+ * Components receive a {@link Logger} via their context (e.g. {@link ToolContext})
5
+ * rather than reaching for a global. Two reference implementations are provided:
6
+ * {@link ConsoleLogger} (level-filtered, optionally silent) and {@link NoopLogger}
7
+ * (discards everything — ideal for tests and library embedding).
8
+ */
9
+ /** Numeric rank for each level; higher means more severe. */
10
+ const LEVEL_RANK = {
11
+ debug: 10,
12
+ info: 20,
13
+ warn: 30,
14
+ error: 40,
15
+ };
16
+ /**
17
+ * Level-filtered logger writing to a {@link LogSink} (the global `console` by
18
+ * default). Honours a `silent` flag for fully suppressed output.
19
+ */
20
+ export class ConsoleLogger {
21
+ level;
22
+ silent;
23
+ sink;
24
+ constructor(options = {}) {
25
+ this.level = options.level ?? "info";
26
+ this.silent = options.silent ?? false;
27
+ this.sink = options.sink ?? console;
28
+ }
29
+ /** Change the minimum emitted level at runtime. */
30
+ setLevel(level) {
31
+ this.level = level;
32
+ }
33
+ /** Toggle silent mode at runtime. */
34
+ setSilent(silent) {
35
+ this.silent = silent;
36
+ }
37
+ enabled(level) {
38
+ if (this.silent)
39
+ return false;
40
+ return LEVEL_RANK[level] >= LEVEL_RANK[this.level];
41
+ }
42
+ debug(msg, meta) {
43
+ if (this.enabled("debug"))
44
+ this.sink.debug(msg, meta);
45
+ }
46
+ info(msg, meta) {
47
+ if (this.enabled("info"))
48
+ this.sink.info(msg, meta);
49
+ }
50
+ warn(msg, meta) {
51
+ if (this.enabled("warn"))
52
+ this.sink.warn(msg, meta);
53
+ }
54
+ error(msg, meta) {
55
+ if (this.enabled("error"))
56
+ this.sink.error(msg, meta);
57
+ }
58
+ }
59
+ /** A {@link Logger} that discards every message. */
60
+ export class NoopLogger {
61
+ debug() {
62
+ /* intentionally empty */
63
+ }
64
+ info() {
65
+ /* intentionally empty */
66
+ }
67
+ warn() {
68
+ /* intentionally empty */
69
+ }
70
+ error() {
71
+ /* intentionally empty */
72
+ }
73
+ }
74
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmBH,6DAA6D;AAC7D,MAAM,UAAU,GAAuC;IACrD,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;CACV,CAAC;AAoBF;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,KAAK,CAAW;IAChB,MAAM,CAAU;IACP,IAAI,CAAU;IAE/B,YAAY,UAAgC,EAAE;QAC5C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC;IACtC,CAAC;IAED,mDAAmD;IACnD,QAAQ,CAAC,KAAe;QACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,qCAAqC;IACrC,SAAS,CAAC,MAAe;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,OAAO,CAAC,KAAe;QAC7B,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,IAAc;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,IAAc;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,CAAC,GAAW,EAAE,IAAc;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,IAAc;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;CACF;AAED,oDAAoD;AACpD,MAAM,OAAO,UAAU;IACrB,KAAK;QACH,yBAAyB;IAC3B,CAAC;IACD,IAAI;QACF,yBAAyB;IAC3B,CAAC;IACD,IAAI;QACF,yBAAyB;IAC3B,CAAC;IACD,KAAK;QACH,yBAAyB;IAC3B,CAAC;CACF"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Agent contracts.
3
+ *
4
+ * An agent is a configured orchestration loop: it pairs a system prompt and a
5
+ * model/provider with a permitted tool set, and turns a user prompt into a
6
+ * final answer (driving the provider/tool loop internally).
7
+ */
8
+ import type { ProviderId, TokenUsage } from "./provider.js";
9
+ /** Lifecycle/role classification of an agent. */
10
+ export type AgentType = "default" | "subagent" | "specialized" | "custom";
11
+ /**
12
+ * Static definition of an agent. `enabledTools`/`disabledTools` are resolved
13
+ * against the global tool registry; `enabledTools` (when present) acts as an
14
+ * allow-list that overrides `disabledTools`.
15
+ */
16
+ export interface AgentDefinition {
17
+ /** Unique agent name (e.g. `"build"`, `"review"`). */
18
+ name: string;
19
+ /** One-line description of the agent's purpose. */
20
+ description: string;
21
+ /** Agent classification. */
22
+ type: AgentType;
23
+ /** Model override; falls back to the active model when omitted. */
24
+ model?: string;
25
+ /** Provider override; falls back to the active provider when omitted. */
26
+ provider?: ProviderId;
27
+ /** Identifier of the system prompt to load (e.g. `"security"`). */
28
+ systemPromptId?: string;
29
+ /** Allow-list of tool names; overrides {@link AgentDefinition.disabledTools}. */
30
+ enabledTools?: string[];
31
+ /** Deny-list of tool names. */
32
+ disabledTools?: string[];
33
+ }
34
+ /** Input to a single agent run. */
35
+ export interface AgentRunInput {
36
+ /** The user's prompt/instruction. */
37
+ prompt: string;
38
+ /** Existing session to continue; a new session is created when omitted. */
39
+ sessionId?: string;
40
+ /** Cancellation signal for the whole run. */
41
+ signal?: AbortSignal;
42
+ }
43
+ /** Aggregated outcome of an agent run. */
44
+ export interface AgentRunResult {
45
+ /** Final assistant text presented to the user. */
46
+ text: string;
47
+ /** Number of tool executions performed across all turns. */
48
+ toolCallsExecuted: number;
49
+ /** Cumulative token usage across all model calls in the run. */
50
+ usage: TokenUsage;
51
+ /** Number of model turns taken. */
52
+ turns: number;
53
+ }
54
+ /**
55
+ * The implementable agent interface.
56
+ *
57
+ * Contract: `run` resolves with an {@link AgentRunResult} on success and
58
+ * rejects with an {@link import("../errors.js").AgentError} on unrecoverable
59
+ * failure. Cancellation via {@link AgentRunInput.signal} should reject with an
60
+ * abort-derived error.
61
+ */
62
+ export interface IAgent {
63
+ /** Static definition of this agent. */
64
+ readonly definition: AgentDefinition;
65
+ /** Execute the agent against the given input. */
66
+ run(input: AgentRunInput): Promise<AgentRunResult>;
67
+ }
68
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5D,iDAAiD;AACjD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,QAAQ,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,mCAAmC;AACnC,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,KAAK,EAAE,UAAU,CAAC;IAClB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,MAAM;IACrB,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,iDAAiD;IACjD,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACpD"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Agent contracts.
3
+ *
4
+ * An agent is a configured orchestration loop: it pairs a system prompt and a
5
+ * model/provider with a permitted tool set, and turns a user prompt into a
6
+ * final answer (driving the provider/tool loop internally).
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,265 @@
1
+ /**
2
+ * UltraCode configuration contract.
3
+ *
4
+ * Mirrors the TOML configuration documented in
5
+ * `docs/GETTING-STARTED/configuration.md` 1:1, but in camelCase (the loader is
6
+ * responsible for snake_case ↔ camelCase mapping). The full, resolved config is
7
+ * {@link UltraCodeConfig}; partial overlays (project/user layers) use
8
+ * {@link DeepPartial}. {@link DEFAULT_CONFIG} is the fully-populated baseline.
9
+ */
10
+ import type { ProviderId } from "./provider.js";
11
+ import type { ToolPermission } from "./tool.js";
12
+ /**
13
+ * Recursively makes every property of `T` optional. Used for config overlays
14
+ * where each layer only specifies the keys it overrides. Arrays are treated as
15
+ * leaves (replaced wholesale, never deep-merged).
16
+ */
17
+ export type DeepPartial<T> = T extends ReadonlyArray<unknown> ? T : T extends object ? {
18
+ [K in keyof T]?: DeepPartial<T[K]>;
19
+ } : T;
20
+ /** `[core]` — global behaviour. */
21
+ export interface CoreConfig {
22
+ /** Default agent for new sessions. */
23
+ defaultAgent: string;
24
+ /** Active model identifier. */
25
+ activeModel: string;
26
+ /** Active provider identifier. */
27
+ activeProvider: ProviderId;
28
+ /** Output language (e.g. `"de"`, `"en"`). */
29
+ language: string;
30
+ /** Max tokens per message. */
31
+ maxTokens: number;
32
+ /** Sampling temperature, `0.0`–`1.0`. */
33
+ temperature: number;
34
+ /** Debug mode. */
35
+ debug: boolean;
36
+ /** Send anonymised telemetry. */
37
+ enableTelemetry: boolean;
38
+ /** Check for updates on startup. */
39
+ enableUpdateChecks: boolean;
40
+ }
41
+ /** `[providers.proxy]` — outbound proxy settings. */
42
+ export interface ProxyConfig {
43
+ /** Whether the proxy is active. */
44
+ enabled: boolean;
45
+ /** Proxy URL, when {@link ProxyConfig.enabled}. */
46
+ url?: string;
47
+ }
48
+ /** `[providers.local]` — local model backend (Ollama/LM Studio). */
49
+ export interface LocalProviderConfig {
50
+ /** Whether local models are available. */
51
+ enabled: boolean;
52
+ /** Base endpoint of the local LLM server. */
53
+ endpoint: string;
54
+ /** Known local model identifiers. */
55
+ models: string[];
56
+ }
57
+ /** `[providers]` — provider-wide defaults. Keys/secrets live in `.env`, not here. */
58
+ export interface ProvidersConfig {
59
+ /** Default provider identifier. */
60
+ default: ProviderId;
61
+ /** API timeout in **seconds** (TOML unit, as documented). */
62
+ timeout: number;
63
+ /** Maximum retry attempts. */
64
+ maxRetries: number;
65
+ /** Base retry delay in **seconds**. */
66
+ retryDelay: number;
67
+ /** Outbound proxy configuration. */
68
+ proxy: ProxyConfig;
69
+ /** Local backend configuration. */
70
+ local: LocalProviderConfig;
71
+ }
72
+ /** `[tools.<name>]` — per-tool overrides. Extra keys are permitted and preserved. */
73
+ export interface PerToolConfig {
74
+ /** Permission override for this tool. */
75
+ permission?: ToolPermission;
76
+ /** Execution timeout in **seconds**. */
77
+ timeout?: number;
78
+ /** Tool-specific allow-listed directories. */
79
+ allowedDirs?: string[];
80
+ /** Extensions this tool must never overwrite. */
81
+ protectedExtensions?: string[];
82
+ /** Cap on returned matches (search tools). */
83
+ maxMatches?: number;
84
+ /** Max concurrent subagents (`task` tool). */
85
+ maxConcurrent?: number;
86
+ /** Open-ended escape hatch for additional, tool-specific keys. */
87
+ [key: string]: unknown;
88
+ }
89
+ /** `[tools]` — tool enablement and per-tool config. */
90
+ export interface ToolsConfig {
91
+ /** Tools disabled by default. */
92
+ disabled: string[];
93
+ /** Tools force-enabled (overrides {@link ToolsConfig.disabled}). */
94
+ enabled: string[];
95
+ /** Per-tool settings keyed by tool name. */
96
+ perTool: Record<string, PerToolConfig>;
97
+ }
98
+ /** `[agents.<name>]` — a single agent override entry. */
99
+ export interface AgentConfigEntry {
100
+ /** Model override. */
101
+ activeModel?: string;
102
+ /** Provider override. */
103
+ activeProvider?: ProviderId;
104
+ /** System prompt identifier. */
105
+ systemPromptId?: string;
106
+ /** Allow-listed tools. */
107
+ enabledTools?: string[];
108
+ /** Deny-listed tools. */
109
+ disabledTools?: string[];
110
+ }
111
+ /** `[agents]` — default agent plus per-agent overrides. */
112
+ export interface AgentsConfig {
113
+ /** Default agent name. */
114
+ default: string;
115
+ /** Per-agent overrides keyed by agent name. */
116
+ agents: Record<string, AgentConfigEntry>;
117
+ }
118
+ /** `[ui.colors]` — custom theme palette (used when `theme = "custom"`). */
119
+ export interface UiColors {
120
+ primary?: string;
121
+ secondary?: string;
122
+ background?: string;
123
+ text?: string;
124
+ error?: string;
125
+ }
126
+ /** `[ui]` — presentation. */
127
+ export interface UiConfig {
128
+ /** Theme name (`dark`, `light`, `dracula`, …, or `custom`). */
129
+ theme: string;
130
+ /** Palette overrides for `theme = "custom"`. */
131
+ colors: UiColors;
132
+ }
133
+ /** `[session.compaction]` — long-conversation summarisation. */
134
+ export interface SessionCompactionConfig {
135
+ /** Whether compaction is enabled. */
136
+ enabled: boolean;
137
+ /** Message-count threshold that triggers compaction. */
138
+ threshold: number;
139
+ /** Model used to produce the summary. */
140
+ model: string;
141
+ }
142
+ /** `[sessions]` — persistence and lifecycle. */
143
+ export interface SessionsConfig {
144
+ /** Persist sessions to disk. */
145
+ enablePersistence: boolean;
146
+ /** Directory for saved sessions (`~` allowed). */
147
+ saveDir: string;
148
+ /** Idle timeout in **minutes** (`0` = never). */
149
+ timeout: number;
150
+ /** Maximum retained sessions. */
151
+ maxSessions: number;
152
+ /** Compaction settings. */
153
+ compaction: SessionCompactionConfig;
154
+ }
155
+ /** `[git.commit]` — commit-message generation. */
156
+ export interface GitCommitConfig {
157
+ /** Whether AI commit messages are generated. */
158
+ enabled: boolean;
159
+ /** Model for commit-message generation. */
160
+ model: string;
161
+ /** Message template (e.g. `"conventional"`). */
162
+ template: string;
163
+ }
164
+ /** `[git.protection]` — protected-branch guard rails. */
165
+ export interface GitProtectionConfig {
166
+ /** Branches on which mutating tools are restricted. */
167
+ protectedBranches: string[];
168
+ /** Tools blocked on protected branches. */
169
+ blockedTools: string[];
170
+ }
171
+ /** `[git]` — Git integration. */
172
+ export interface GitConfig {
173
+ /** Show git status automatically. */
174
+ autoStatus: boolean;
175
+ /** Auto-commit before running tools. */
176
+ autoCommit: boolean;
177
+ /** Commit-message generation settings. */
178
+ commit: GitCommitConfig;
179
+ /** Branch protection settings. */
180
+ protection: GitProtectionConfig;
181
+ }
182
+ /** `[versioning.semantic]` — SemVer behaviour. */
183
+ export interface VersioningSemanticConfig {
184
+ /** Automatically suggest the next version. */
185
+ autoSuggest: boolean;
186
+ /** Version tag prefix (e.g. `"v"`). */
187
+ prefix: string;
188
+ }
189
+ /** `[versioning.channels]` — channel → current version mapping. */
190
+ export interface VersioningChannelsConfig {
191
+ stable: string;
192
+ lts: string;
193
+ experimental: string;
194
+ /** Additional custom channels. */
195
+ [channel: string]: string;
196
+ }
197
+ /** `[versioning.quality]` — release quality gates. */
198
+ export interface VersioningQualityConfig {
199
+ /** Minimum test coverage percentage required for release. */
200
+ minCoverage: number;
201
+ /** Whether code review is mandatory before release. */
202
+ requireReview: boolean;
203
+ }
204
+ /** `[versioning.changelog]` — changelog generation. */
205
+ export interface VersioningChangelogConfig {
206
+ /** Whether changelog generation is enabled. */
207
+ enabled: boolean;
208
+ /** Target changelog file. */
209
+ file: string;
210
+ /** Model used to draft the changelog. */
211
+ model: string;
212
+ }
213
+ /** `[versioning]` — the AI versioning system. */
214
+ export interface VersioningConfig {
215
+ /** Master switch. */
216
+ enabled: boolean;
217
+ /** Strategy: `"semantic"`, `"date"`, or `"custom"`. */
218
+ strategy: "semantic" | "date" | "custom";
219
+ /** Semantic versioning settings. */
220
+ semantic: VersioningSemanticConfig;
221
+ /** Channel → version map. */
222
+ channels: VersioningChannelsConfig;
223
+ /** Quality gate thresholds. */
224
+ quality: VersioningQualityConfig;
225
+ /** Changelog settings. */
226
+ changelog: VersioningChangelogConfig;
227
+ }
228
+ /** Transport for an MCP server. */
229
+ export type McpTransport = "http" | "stdio";
230
+ /** `[[mcp_servers]]` — a single MCP server registration. */
231
+ export interface McpServerConfig {
232
+ /** Unique server name; used to namespace its tools. */
233
+ name: string;
234
+ /** Transport type. */
235
+ transport: McpTransport;
236
+ /** For `transport: "http"`: server URL. */
237
+ url?: string;
238
+ /** For `transport: "stdio"`: executable to launch. */
239
+ command?: string;
240
+ /** For `transport: "stdio"`: arguments to {@link McpServerConfig.command}. */
241
+ args?: string[];
242
+ /** Environment variable holding the server's API key. */
243
+ apiKeyEnv?: string;
244
+ }
245
+ /** The fully-resolved UltraCode configuration. */
246
+ export interface UltraCodeConfig {
247
+ core: CoreConfig;
248
+ providers: ProvidersConfig;
249
+ tools: ToolsConfig;
250
+ agents: AgentsConfig;
251
+ ui: UiConfig;
252
+ sessions: SessionsConfig;
253
+ git: GitConfig;
254
+ versioning: VersioningConfig;
255
+ /** Registered MCP servers. */
256
+ mcpServers: McpServerConfig[];
257
+ }
258
+ /**
259
+ * The embedded baseline configuration. Every key is populated so that a missing
260
+ * user/project config still yields a valid, runnable {@link UltraCodeConfig}.
261
+ * Defaults follow the documented reference table (note: `language` defaults to
262
+ * `"en"`, `theme` to `"dark"`).
263
+ */
264
+ export declare const DEFAULT_CONFIG: UltraCodeConfig;
265
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * UltraCode configuration contract.
3
+ *
4
+ * Mirrors the TOML configuration documented in
5
+ * `docs/GETTING-STARTED/configuration.md` 1:1, but in camelCase (the loader is
6
+ * responsible for snake_case ↔ camelCase mapping). The full, resolved config is
7
+ * {@link UltraCodeConfig}; partial overlays (project/user layers) use
8
+ * {@link DeepPartial}. {@link DEFAULT_CONFIG} is the fully-populated baseline.
9
+ */
10
+ /**
11
+ * The embedded baseline configuration. Every key is populated so that a missing
12
+ * user/project config still yields a valid, runnable {@link UltraCodeConfig}.
13
+ * Defaults follow the documented reference table (note: `language` defaults to
14
+ * `"en"`, `theme` to `"dark"`).
15
+ */
16
+ export const DEFAULT_CONFIG = {
17
+ core: {
18
+ defaultAgent: "default",
19
+ activeModel: "mistral-large",
20
+ activeProvider: "mistral",
21
+ language: "en",
22
+ maxTokens: 32000,
23
+ temperature: 0.7,
24
+ debug: false,
25
+ enableTelemetry: true,
26
+ enableUpdateChecks: true,
27
+ },
28
+ providers: {
29
+ default: "mistral",
30
+ timeout: 60,
31
+ maxRetries: 3,
32
+ retryDelay: 1,
33
+ proxy: {
34
+ enabled: false,
35
+ },
36
+ local: {
37
+ enabled: false,
38
+ endpoint: "http://localhost:11434",
39
+ models: [],
40
+ },
41
+ },
42
+ tools: {
43
+ disabled: [],
44
+ enabled: [],
45
+ perTool: {},
46
+ },
47
+ agents: {
48
+ default: "default",
49
+ agents: {},
50
+ },
51
+ ui: {
52
+ theme: "dark",
53
+ colors: {},
54
+ },
55
+ sessions: {
56
+ enablePersistence: true,
57
+ saveDir: "~/.ultracode/sessions",
58
+ timeout: 60,
59
+ maxSessions: 50,
60
+ compaction: {
61
+ enabled: true,
62
+ threshold: 50,
63
+ model: "mistral-medium",
64
+ },
65
+ },
66
+ git: {
67
+ autoStatus: true,
68
+ autoCommit: false,
69
+ commit: {
70
+ enabled: true,
71
+ model: "mistral-medium",
72
+ template: "conventional",
73
+ },
74
+ protection: {
75
+ protectedBranches: ["main", "master", "develop"],
76
+ blockedTools: [],
77
+ },
78
+ },
79
+ versioning: {
80
+ enabled: true,
81
+ strategy: "semantic",
82
+ semantic: {
83
+ autoSuggest: true,
84
+ prefix: "v",
85
+ },
86
+ channels: {
87
+ stable: "0.0.0",
88
+ lts: "0.0.0",
89
+ experimental: "0.0.0",
90
+ },
91
+ quality: {
92
+ minCoverage: 80,
93
+ requireReview: true,
94
+ },
95
+ changelog: {
96
+ enabled: true,
97
+ file: "CHANGELOG.md",
98
+ model: "mistral-medium",
99
+ },
100
+ },
101
+ mcpServers: [],
102
+ };
103
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqRH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,IAAI,EAAE;QACJ,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,eAAe;QAC5B,cAAc,EAAE,SAAS;QACzB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,GAAG;QAChB,KAAK,EAAE,KAAK;QACZ,eAAe,EAAE,IAAI;QACrB,kBAAkB,EAAE,IAAI;KACzB;IACD,SAAS,EAAE;QACT,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,EAAE;QACX,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;QACb,KAAK,EAAE;YACL,OAAO,EAAE,KAAK;SACf;QACD,KAAK,EAAE;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,EAAE;SACX;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ;IACD,MAAM,EAAE;QACN,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,EAAE;KACX;IACD,EAAE,EAAE;QACF,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,EAAE;KACX;IACD,QAAQ,EAAE;QACR,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,EAAE;QACf,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,gBAAgB;SACxB;KACF;IACD,GAAG,EAAE;QACH,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,cAAc;SACzB;QACD,UAAU,EAAE;YACV,iBAAiB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;YAChD,YAAY,EAAE,EAAE;SACjB;KACF;IACD,UAAU,EAAE;QACV,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE;YACR,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,GAAG;SACZ;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,OAAO;YACf,GAAG,EAAE,OAAO;YACZ,YAAY,EAAE,OAAO;SACtB;QACD,OAAO,EAAE;YACP,WAAW,EAAE,EAAE;YACf,aAAa,EAAE,IAAI;SACpB;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,gBAAgB;SACxB;KACF;IACD,UAAU,EAAE,EAAE;CACf,CAAC"}