the-citadel 0.5.4 → 0.9.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.

Potentially problematic release.


This version of the-citadel might be problematic. Click here for more details.

package/README.md CHANGED
@@ -11,7 +11,7 @@ Use The Citadel for complex, multi-step objectives: **building software features
11
11
  ## Installation
12
12
 
13
13
  ```bash
14
- npm install the-citadel@0.0.1
14
+ npm install the-citadel@0.8.4
15
15
  ```
16
16
 
17
17
  ---
@@ -25,7 +25,6 @@ npm install the-citadel@0.0.1
25
25
  - **Durable State** – All context is stored in Git‑backed SQLite **Pearls** (audit‑ready, restartable).
26
26
  - **Parallel Execution** – Configurable `max_workers` and `load_factor` for high-throughput concurrency.
27
27
  - **Provider‑agnostic** – Works with Ollama, OpenAI, Anthropic, and more.
28
- - **Provider‑agnostic** – Works with Ollama, OpenAI, Anthropic, and more.
29
28
  - **Context Aware** – Adheres to specific project rules and style guides (`AGENTS.md`) automatically. Supports [YAML Frontmatter](docs/agent/AGENTS.md.frontmatter.md) for strict `ignore`, `read_only`, and `forbidden` file constraints.
30
29
  - **Dynamic Data Piping** – Pass rich inputs (`context`) to tasks and pipe outputs between steps (`{{steps.foo.output.bar}}`).
31
30
 
@@ -35,7 +34,7 @@ npm install the-citadel@0.0.1
35
34
 
36
35
  ```bash
37
36
  # 1️⃣ Install globally
38
- npm install -g the-citadel@0.0.1
37
+ npm install -g the-citadel@0.8.4
39
38
 
40
39
  # 2️⃣ Bootstrap a new project
41
40
  citadel init # creates .citadel/ + config + sample formula
@@ -1,3 +1,2 @@
1
1
  export * from "./evaluator";
2
- export * from "./router";
3
2
  export * from "./worker";
@@ -17,16 +17,6 @@ export declare const ConfigSchema: z.ZodObject<{
17
17
  }, z.core.$strip>>;
18
18
  }, z.core.$strip>;
19
19
  agents: z.ZodObject<{
20
- router: z.ZodObject<{
21
- provider: z.ZodEnum<{
22
- openai: "openai";
23
- anthropic: "anthropic";
24
- ollama: "ollama";
25
- }>;
26
- model: z.ZodString;
27
- mcpTools: z.ZodOptional<z.ZodArray<z.ZodString>>;
28
- mcpResources: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
29
- }, z.core.$strip>;
30
20
  worker: z.ZodObject<{
31
21
  provider: z.ZodEnum<{
32
22
  openai: "openai";
@@ -67,6 +57,7 @@ export declare const ConfigSchema: z.ZodObject<{
67
57
  min_workers: z.ZodDefault<z.ZodNumber>;
68
58
  max_workers: z.ZodDefault<z.ZodNumber>;
69
59
  load_factor: z.ZodDefault<z.ZodNumber>;
60
+ auto_close_epics: z.ZodDefault<z.ZodBoolean>;
70
61
  }, z.core.$strip>>;
71
62
  pearls: z.ZodObject<{
72
63
  path: z.ZodDefault<z.ZodString>;
@@ -81,6 +72,9 @@ export declare const ConfigSchema: z.ZodObject<{
81
72
  maxToolResponseSize: z.ZodDefault<z.ZodNumber>;
82
73
  maxMessageSize: z.ZodDefault<z.ZodNumber>;
83
74
  }, z.core.$strip>>;
75
+ hooks: z.ZodOptional<z.ZodObject<{
76
+ onPearlDone: z.ZodOptional<z.ZodAny>;
77
+ }, z.core.$strip>>;
84
78
  }, z.core.$strip>;
85
79
  export type CitadelConfig = z.infer<typeof ConfigSchema>;
86
80
  export type CitadelConfigInput = z.input<typeof ConfigSchema>;
@@ -18,6 +18,7 @@ export declare const FormulaStepSchema: z.ZodObject<{
18
18
  output_schema: z.ZodOptional<z.ZodAny>;
19
19
  context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
20
20
  labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
21
+ agent: z.ZodOptional<z.ZodString>;
21
22
  }, z.core.$strip>;
22
23
  export declare const FormulaSchema: z.ZodObject<{
23
24
  formula: z.ZodString;
@@ -43,6 +44,7 @@ export declare const FormulaSchema: z.ZodObject<{
43
44
  output_schema: z.ZodOptional<z.ZodAny>;
44
45
  context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
45
46
  labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
47
+ agent: z.ZodOptional<z.ZodString>;
46
48
  }, z.core.$strip>>;
47
49
  }, z.core.$strip>;
48
50
  export type Formula = z.infer<typeof FormulaSchema>;
@@ -16,7 +16,7 @@ export interface InstructionProvider {
16
16
  export declare class GlobalProvider implements InstructionProvider {
17
17
  name: string;
18
18
  priority: number;
19
- getInstructions(_ctx: InstructionContext): Promise<string | null>;
19
+ getInstructions(ctx: InstructionContext): Promise<string | null>;
20
20
  }
21
21
  /**
22
22
  * Hardcoded defaults for Citadel roles.
@@ -1,4 +1,4 @@
1
1
  import type { LanguageModel } from "ai";
2
- type AgentRole = "router" | "worker" | "gatekeeper";
2
+ type AgentRole = "worker" | "gatekeeper";
3
3
  export declare function getAgentModel(role: AgentRole): LanguageModel;
4
4
  export {};
@@ -1,9 +1,10 @@
1
1
  import type { InstructionContext, InstructionProvider } from "./instruction";
2
+ import { type MCPService } from "../services/mcp";
2
3
  export declare class MCPResourceProvider implements InstructionProvider {
3
4
  name: string;
4
5
  priority: number;
5
6
  private explicitMcpService?;
6
- constructor(mcpService?: any);
7
+ constructor(mcpService?: MCPService);
7
8
  getInstructions(ctx: InstructionContext): Promise<string | null>;
8
9
  private mergeResources;
9
10
  }
@@ -26,6 +26,7 @@ export declare const PearlSchema: z.ZodObject<{
26
26
  type: z.ZodOptional<z.ZodString>;
27
27
  description: z.ZodOptional<z.ZodString>;
28
28
  context: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
29
+ output: z.ZodOptional<z.ZodUnknown>;
29
30
  created_at: z.ZodString;
30
31
  updated_at: z.ZodString;
31
32
  }, z.core.$strip>;
@@ -17,7 +17,6 @@ export declare const TicketSchema: z.ZodObject<{
17
17
  }>;
18
18
  priority: z.ZodNumber;
19
19
  target_role: z.ZodEnum<{
20
- router: "router";
21
20
  worker: "worker";
22
21
  gatekeeper: "gatekeeper";
23
22
  }>;
@@ -79,6 +78,10 @@ export declare class WorkQueue {
79
78
  * Get tickets by status
80
79
  */
81
80
  getTicketsByStatus(status: TicketStatus): Ticket[];
81
+ /**
82
+ * Get all tickets, optionally filtered by status
83
+ */
84
+ getAllTickets(status?: TicketStatus): Ticket[];
82
85
  /**
83
86
  * Get count of pending (queued) tickets for a specific role
84
87
  */