openfleet 0.3.15 → 0.4.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 (47) hide show
  1. package/README.md +52 -2
  2. package/dist/agents/{reviewer.d.ts → architect.d.ts} +1 -1
  3. package/dist/agents/{planner.d.ts → builder.d.ts} +1 -1
  4. package/dist/agents/index.d.ts +6 -8
  5. package/dist/agents/{housekeeping.d.ts → introspector.d.ts} +1 -1
  6. package/dist/agents/names.d.ts +6 -8
  7. package/dist/agents/{actor.d.ts → recon.d.ts} +1 -1
  8. package/dist/agents/{reflector.d.ts → validator.d.ts} +1 -1
  9. package/dist/config.d.ts +14 -13
  10. package/dist/index.js +422 -740
  11. package/dist/templates/.openfleet/.templates/task-tree.md +3 -3
  12. package/dist/templates/.openfleet/README.md +28 -25
  13. package/dist/templates/.openfleet/VERSION +1 -0
  14. package/dist/templates/.openfleet/gitignore.template +2 -7
  15. package/dist/templates/.openfleet/migrations/0.4.0.md +74 -0
  16. package/dist/templates/.openfleet/{agents/Apollo.md → private/agents/Architect.md} +2 -2
  17. package/dist/templates/.openfleet/{agents/Hercules.md → private/agents/Builder.md} +2 -2
  18. package/dist/templates/.openfleet/{agents/Mnemosyne.md → private/agents/Introspector.md} +2 -40
  19. package/dist/templates/.openfleet/{agents/Athena.md → private/agents/Recon.md} +2 -2
  20. package/dist/templates/.openfleet/{agents/Chiron.md → private/agents/Validator.md} +2 -2
  21. package/dist/templates/.openfleet/{experience → private/experience}/README.md +1 -2
  22. package/dist/templates/.openfleet/private/preferences.md +113 -0
  23. package/dist/templates/.openfleet/public/standards/code-style.md +11 -0
  24. package/dist/utils/directory-init.d.ts +1 -0
  25. package/package.json +1 -1
  26. package/dist/agents/read-only.d.ts +0 -2
  27. package/dist/agents/scout.d.ts +0 -2
  28. package/dist/templates/.openfleet/experience/blunders/README.md +0 -6
  29. package/dist/templates/.openfleet/reviews/README.md +0 -15
  30. package/dist/templates/.openfleet/sessions/README.md +0 -16
  31. package/dist/templates/.openfleet/standards/code-style.md +0 -3
  32. package/dist/tools/save-conversation/counter.d.ts +0 -31
  33. package/dist/tools/save-conversation/session-writer.d.ts +0 -17
  34. package/dist/tools/save-conversation/slug-generator.d.ts +0 -14
  35. package/dist/tools/save-conversation/types.d.ts +0 -28
  36. /package/dist/templates/.openfleet/{agents → private/agents}/Zeus.md +0 -0
  37. /package/dist/templates/.openfleet/{experience → private/experience}/lessons/README.md +0 -0
  38. /package/dist/templates/.openfleet/{experience → private/experience}/runbooks/README.md +0 -0
  39. /package/dist/templates/.openfleet/{status.md → private/status.md} +0 -0
  40. /package/dist/templates/.openfleet/{stories → private/stories}/README.md +0 -0
  41. /package/dist/templates/.openfleet/{transcripts → private/transcripts}/README.md +0 -0
  42. /package/dist/templates/.openfleet/{docs → public/docs}/README.md +0 -0
  43. /package/dist/templates/.openfleet/{standards → public/standards}/README.md +0 -0
  44. /package/dist/templates/.openfleet/{standards → public/standards}/architecture.md +0 -0
  45. /package/dist/templates/.openfleet/{standards → public/standards}/review-checklist.md +0 -0
  46. /package/dist/templates/.openfleet/{standards → public/standards}/testing.md +0 -0
  47. /package/dist/templates/.openfleet/{experience → public}/troubleshooting/README.md +0 -0
@@ -64,7 +64,7 @@ feat/auth-redesign
64
64
  ├──► task/06-10_refresh-tokens (created 2026-01-19) ← YOU ARE HERE
65
65
  │ Phases: R✅ H✅ L🔄 I⏳
66
66
  │ Branch: feat/auth-redesign/refresh-tokens
67
- │ Agent: Apollo (reviewing LLD.md)
67
+ │ Agent: Architect (reviewing LLD.md)
68
68
  │ │
69
69
  │ └──► branch/temp-skip-rotation (created 2026-01-20) ⏸️ escalated
70
70
  │ Issue: Complex token rotation bug
@@ -76,7 +76,7 @@ feat/auth-redesign
76
76
 
77
77
  ---
78
78
 
79
- ## Instructions for Zeus
79
+ ## Instructions for Orchestrator
80
80
 
81
81
  **CRITICAL**: Update this file after EVERY change to THIS story:
82
82
 
@@ -91,7 +91,7 @@ The tree MUST show:
91
91
 
92
92
  1. Full hierarchy (task → subtask → branches)
93
93
  2. Current position marker (`← YOU ARE HERE`)
94
- 3. Active agents (`← Hercules working`)
94
+ 3. Active agents (`← Builder working`)
95
95
  4. Phase progress for each node (R/H/L/I with status)
96
96
  5. Branch status (merged, blocked, escalated)
97
97
  6. Git branch names
@@ -8,7 +8,7 @@ not for humans, though it would be difficult to mess this up unintentionally.
8
8
 
9
9
  ## For Agents 🤖
10
10
 
11
- Understand `## Structure`, then see `./status.md`, and other necessary
11
+ Understand `## Structure`, then see `./private/status.md`, and other necessary
12
12
  files before starting your current task.
13
13
 
14
14
  ## Structure
@@ -16,30 +16,33 @@ files before starting your current task.
16
16
  ```
17
17
  .openfleet/
18
18
  ├── README.md
19
- ├── status.md # Anchor point - agent reads this first (gitignored)
20
- ├── agents/ # Per-agent scratchpads (gitignored)
21
- ├── Zeus.md
22
- ├── Athena.md
23
- ├── Apollo.md
24
- ├── Hercules.md
25
- │ ├── Chiron.md
26
- └── Mnemosyne.md
27
- ├── sessions/ # Agent transcripts / journals (gitignored)
28
- ├── stories/ # Work organized by story/epic (gitignored)
29
- ├── docs/ # Permanent documentation (committed)
30
- │ └── README.md
31
- ├── experience/ # Self-healing long term memory (committed)
32
- │ ├── runbooks/ # Used for recurring tasks
33
- ├── troubleshooting/ # Used for common errors
34
- ├── lessons/ # Used for learning from past mistakes
35
- └── blunders/ # Used for learning from stupid mistakes
36
- ├── standards/ # Prescriptive guidelines (committed)
37
- │ ├── code-style.md
38
- │ ├── architecture.md
39
- │ ├── testing.md
40
- │ └── review-checklist.md
41
- └── reviews/ # Human review artifacts (committed)
42
- └── README.md
19
+ ├── VERSION # Stamped on init; absence/mismatch = migration needed
20
+ ├── migrations/ # Per-version migration guides
21
+ └── 0.4.0.md
22
+ ├── .templates/ # Templates for new stories/tasks
23
+ └── task-tree.md
24
+ ├── public/ # Committed — shared knowledge
25
+ │ ├── docs/ # Compressed story learnings
26
+ ├── standards/ # Prescriptive guidelines
27
+ │ │ ├── code-style.md
28
+ │ │ ├── architecture.md
29
+ │ │ ├── testing.md
30
+ └── review-checklist.md
31
+ │ └── troubleshooting/ # Common error guides
32
+ └── private/ # Gitignored machine-local
33
+ ├── status.md # Anchor point - agent reads this first
34
+ ├── agents/ # Per-agent scratchpads
35
+ ├── Zeus.md
36
+ ├── Recon.md
37
+ │ ├── Architect.md
38
+ │ ├── Builder.md
39
+ │ ├── Validator.md
40
+ │ └── Introspector.md
41
+ ├── stories/ # Work organized by story/epic
42
+ ├── experience/ # Self-healing long term memory
43
+ │ ├── runbooks/ # Used for recurring tasks
44
+ │ └── lessons/ # Used for learning from past mistakes and pitfalls
45
+ └── transcripts/ # Agent session transcripts
43
46
  ```
44
47
 
45
48
  ## Git worktree visualization
@@ -0,0 +1 @@
1
+ 0.4.0
@@ -1,7 +1,2 @@
1
- # .openfleet
2
- agents/
3
- stories/
4
- status.md
5
- sessions/
6
- transcripts/
7
- openfleet.log
1
+ # private/ is machine-local and not committed
2
+ private/
@@ -0,0 +1,74 @@
1
+ # Migration Guide: v0.4.0
2
+
3
+ ## What Changed
4
+
5
+ - Directory restructured into `public/` (committed) and `private/` (gitignored)
6
+ - Agent files renamed: Athena→Recon, Apollo→Architect, Hercules→Builder, Chiron→Validator, Mnemosyne→Introspector
7
+ - `sessions/` and `reviews/` removed
8
+
9
+ ## Migration Steps
10
+
11
+ Run these commands from inside your `.openfleet/` directory:
12
+
13
+ ```bash
14
+ # 1. Create new structure
15
+ mkdir -p private/agents private/stories private/experience/runbooks private/experience/lessons private/transcripts
16
+ mkdir -p public/docs public/standards public/troubleshooting
17
+
18
+ # 2. Move agent files (with renames)
19
+ [ -f agents/Athena.md ] && mv agents/Athena.md private/agents/Recon.md
20
+ [ -f agents/Apollo.md ] && mv agents/Apollo.md private/agents/Architect.md
21
+ [ -f agents/Hercules.md ] && mv agents/Hercules.md private/agents/Builder.md
22
+ [ -f agents/Chiron.md ] && mv agents/Chiron.md private/agents/Validator.md
23
+ [ -f agents/Mnemosyne.md ] && mv agents/Mnemosyne.md private/agents/Introspector.md
24
+ [ -f agents/Zeus.md ] && mv agents/Zeus.md private/agents/Zeus.md
25
+ [ -d agents ] && rmdir agents 2>/dev/null
26
+
27
+ # 3. Move structural dirs
28
+ [ -d stories ] && mv stories private/stories
29
+ [ -f status.md ] && mv status.md private/status.md
30
+ [ -d transcripts ] && mv transcripts private/transcripts
31
+
32
+ # 4. Move experience subdirs
33
+ [ -d experience/runbooks ] && mv experience/runbooks private/experience/runbooks
34
+ [ -d experience/lessons ] && mv experience/lessons private/experience/lessons
35
+ [ -d experience/troubleshooting ] && mv experience/troubleshooting public/troubleshooting
36
+
37
+ # 5. Move public dirs
38
+ [ -d docs ] && mv docs public/docs
39
+ [ -d standards ] && mv standards public/standards
40
+
41
+ # 6. Clean up
42
+ rm -rf sessions reviews 2>/dev/null
43
+ rmdir experience 2>/dev/null
44
+
45
+ # 7. Update .gitignore
46
+ echo "private/" > .gitignore
47
+
48
+ # 8. Stamp version
49
+ echo "0.4.0" > VERSION
50
+ ```
51
+
52
+ ## Verify
53
+
54
+ After migration, your `.openfleet/` should look like:
55
+
56
+ ```
57
+ .openfleet/
58
+ ├── VERSION
59
+ ├── .gitignore # contains: private/
60
+ ├── README.md
61
+ ├── .templates/
62
+ ├── migrations/
63
+ │ └── 0.4.0.md
64
+ ├── public/
65
+ │ ├── docs/
66
+ │ ├── standards/
67
+ │ └── troubleshooting/
68
+ └── private/
69
+ ├── status.md
70
+ ├── agents/
71
+ ├── stories/
72
+ ├── experience/
73
+ └── transcripts/
74
+ ```
@@ -1,6 +1,6 @@
1
- # Apollo
1
+ # Architect
2
2
 
3
- _God of music, poetry, and prophecy._
3
+ _Architecture and planning agent._
4
4
 
5
5
  Your personal scratchpad. Use this for:
6
6
 
@@ -1,6 +1,6 @@
1
- # Hercules
1
+ # Builder
2
2
 
3
- _Divine hero known for strength and endurance._
3
+ _Implementation and execution agent._
4
4
 
5
5
  Your personal scratchpad. Use this for:
6
6
 
@@ -1,6 +1,6 @@
1
- # Mnemosyne
1
+ # Introspector
2
2
 
3
- _The goddess of memory and mother of the Muses._
3
+ _Knowledge management and reflection agent._
4
4
 
5
5
  This is the index of accumulated experience. Consult before tackling unfamiliar problems.
6
6
 
@@ -20,10 +20,6 @@ _No guides yet._
20
20
 
21
21
  _No lessons yet._
22
22
 
23
- ### Blunders to Avoid
24
-
25
- _No blunders recorded._
26
-
27
23
  ---
28
24
 
29
25
  ## File Naming Conventions
@@ -52,14 +48,6 @@ Use lowercase kebab-case with suffix: `<topic>-lesson.md`
52
48
  - `batch-database-queries-lesson.md`
53
49
  - `early-return-pattern-lesson.md`
54
50
 
55
- ### Blunders
56
-
57
- Use lowercase kebab-case with suffix: `<descriptive-name>-blunder.md`
58
-
59
- - `api-key-exposure-blunder.md`
60
- - `missing-null-check-blunder.md`
61
- - `wrong-environment-deploy-blunder.md`
62
-
63
51
  ---
64
52
 
65
53
  ## Templates
@@ -139,32 +127,6 @@ Use lowercase kebab-case with suffix: `<descriptive-name>-blunder.md`
139
127
  - <Links to relevant docs, code, or external resources>
140
128
  ```
141
129
 
142
- ### Blunder
143
-
144
- ```markdown
145
- # <Brief title describing the blunder>
146
-
147
- ## What happened
148
-
149
- <Description of the mistake - what was done wrong>
150
-
151
- ## Impact
152
-
153
- <What went wrong as a result - consequences>
154
-
155
- ## Root cause
156
-
157
- <Why it happened - the underlying reason>
158
-
159
- ## Prevention
160
-
161
- <How to avoid this in the future - proactive measures>
162
-
163
- ## Detection
164
-
165
- <How to catch early if it happens again - monitoring/review steps>
166
- ```
167
-
168
130
  ---
169
131
 
170
132
  _Updated when new experience is captured._
@@ -1,6 +1,6 @@
1
- # Athena
1
+ # Recon
2
2
 
3
- _Goddess of wisdom and strategic warfare._
3
+ _Reconnaissance and research agent._
4
4
 
5
5
  Your personal scratchpad. Use this for:
6
6
 
@@ -1,6 +1,6 @@
1
- # Chiron
1
+ # Validator
2
2
 
3
- _Wisest of the centaurs, teacher of heroes._
3
+ _Code review and quality assurance agent._
4
4
 
5
5
  Your personal scratchpad. Use this for:
6
6
 
@@ -8,8 +8,7 @@ Self-healing systems with long-term memory. Learned knowledge from past work.
8
8
  experience/
9
9
  ├── runbooks/ # How-to guides for recurring tasks
10
10
  ├── troubleshooting/ # Problem → solution mappings
11
- ├── lessons/ # Insights and best practices
12
- └── blunders/ # Mistakes to avoid
11
+ └── lessons/ # Insights, best practices, and mistakes to avoid
13
12
  ```
14
13
 
15
14
  ## Usage
@@ -0,0 +1,113 @@
1
+ # User Preferences
2
+
3
+ Read this before starting any implementation task.
4
+
5
+ ## Docstrings
6
+
7
+ - One-liner starts right after the opening `"""`
8
+ - Numbered bullet list of what the function does (if non-trivial)
9
+ - Optional `Example:` block for non-obvious usage
10
+ - No `Args` or `Returns` sections
11
+ - Add a blank line between the docstring and the code body
12
+ - Single-line docstring is fine for simple functions — don't overcomplicate
13
+ - No file-level docstrings
14
+ - No private function docstrings
15
+
16
+ ## Comments
17
+
18
+ Code should be self-documenting. Avoid comments unless there is a genuine gotcha or
19
+ non-obvious complexity.
20
+
21
+ ## Logging
22
+
23
+ **Use `logger.span()` for:**
24
+
25
+ - All database operations
26
+ - External API calls
27
+ - Business logic boundaries
28
+ - Any operation where timing/duration matters
29
+
30
+ **Use `logger.info()` for:**
31
+
32
+ - State-changing operations (create, update, delete) — audit trail
33
+ - Operation outcomes (success/failure messages)
34
+ - NOT for read operations (spans are sufficient)
35
+
36
+ **Span naming** — follow OpenTelemetry dot notation: `entity.action`
37
+
38
+ ## Failing tests
39
+
40
+ If a test fails, do not simply rerun it with an increased timeout. Unless you have concrete
41
+ logs-based evidence that the failure is purely a timing issue, bumping the timeout is just
42
+ noise — the underlying problem will resurface.
43
+
44
+ Instead:
45
+
46
+ - **Read the logs.** What actually failed and why?
47
+ - **Check other metrics.** Is a dependency down? Is there a race condition? Did an assertion fail on wrong data?
48
+ - **Understand before acting.** A test that passes with a higher timeout is not a fixed test.
49
+
50
+ ## Optional fields
51
+
52
+ Be deliberate about whether a field is truly optional. Loosely marking fields as optional
53
+ (`T | undefined`, `T | None`, `?: T`) forces every caller to add `if x` guards throughout
54
+ the codebase, spreading defensive boilerplate everywhere.
55
+
56
+ Before making a field optional, ask:
57
+
58
+ - **Is this field ever genuinely absent?** If it always exists after construction, make it required.
59
+ - **Are you making it optional just to avoid passing it at the call site?** That's the wrong fix — rework the constructor or factory instead.
60
+
61
+ ```ts
62
+ // ❌ Loose — now every caller has to guard
63
+ interface Session {
64
+ id: string
65
+ agentName?: string // is this ever really missing?
66
+ }
67
+ if (session.agentName) { ... }
68
+
69
+ // ✅ Tight — guaranteed present, no guards needed
70
+ interface Session {
71
+ id: string
72
+ agentName: string
73
+ }
74
+ ```
75
+
76
+ Optional should mean **genuinely absent in valid states**, not **"I wasn't sure so I added a `?`"**.
77
+
78
+ ## Code style
79
+
80
+ **Prefer Pydantic `BaseModel` over `dataclass`**
81
+ Pydantic gives you validation, serialization, and IDE support for free. Only reach for `dataclass` if you have a specific reason to avoid Pydantic.
82
+
83
+ **Prefer dependency injection over module-level instantiation**
84
+ Instantiating objects at the module level makes code hard to test and creates hidden coupling. Pass dependencies explicitly so they can be swapped, mocked, or configured at the call site.
85
+
86
+ ```py
87
+ # ❌ Module-level — hidden, untestable
88
+ db = Database()
89
+
90
+ def get_user(id: str):
91
+ return db.find(id)
92
+
93
+ # ✅ Injected via dependencies.py
94
+ # dependencies.py
95
+ def get_db() -> Database:
96
+ return Database(settings.DATABASE_URL)
97
+
98
+ # router.py
99
+ @router.get("/users/{id}")
100
+ def get_user(id: str, db: Database = Depends(get_db)):
101
+ return db.find(id)
102
+ ```
103
+
104
+ **Prefer extracting logic into hooks over long components**
105
+ When a component grows complex, resist the urge to keep adding to it. Pull state and side-effect logic into a dedicated hook so the component stays focused on rendering.
106
+
107
+ ## Function placement
108
+
109
+ When adding new methods or functions, place them thoughtfully:
110
+
111
+ - Public before private
112
+ - By importance: `start`, `run`, `process` near top; helpers near bottom
113
+ - Don't blindly append to the end of a file
@@ -0,0 +1,11 @@
1
+ # Code Style Standards
2
+
3
+ ## Type definitions
4
+
5
+ Before defining a new type, always check:
6
+
7
+ 1. **Does it already exist?** Search the codebase before creating a duplicate.
8
+ 2. **Can it be imported from a 3rd-party library?** Prefer importing from the library
9
+ that owns the concept over redefining it locally.
10
+
11
+ Only define a new type if it genuinely doesn't exist anywhere reachable.
@@ -1 +1,2 @@
1
1
  export declare function initializeDirectories(): void;
2
+ export declare function checkMigrationNeeded(): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openfleet",
3
- "version": "0.3.15",
3
+ "version": "0.4.0",
4
4
  "description": "SPARR framework agents + infinite context for OpenCode",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,2 +0,0 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk";
2
- export declare const readonlyOrchestratorAgent: AgentConfig;
@@ -1,2 +0,0 @@
1
- import type { AgentConfig } from "@opencode-ai/sdk";
2
- export declare const scoutAgent: AgentConfig;
@@ -1,6 +0,0 @@
1
- # Blunders
2
-
3
- Mistakes to avoid. Learning from failure.
4
-
5
- This is not a blame log. It's a learning resource.
6
- Recording blunders helps prevent repeating them.
@@ -1,15 +0,0 @@
1
- # Reviews
2
-
3
- Human review artifacts and feedback.
4
-
5
- ## Structure
6
-
7
- ```
8
- reviews/
9
- ├── README.md # This file
10
- └── YYYY-MM-DD_<topic>.md # Individual review records
11
- ```
12
-
13
- ## Usage
14
-
15
- Store feedback from human reviews here for future reference.
@@ -1,16 +0,0 @@
1
- # Sessions Directory
2
-
3
- Conversation records organized by date.
4
-
5
- ## Structure
6
-
7
- ```
8
- sessions/
9
- └── YYYY-MM-DD/
10
- └── NNN_topic-slug.md
11
- ```
12
-
13
- ## Usage
14
-
15
- Sessions are auto-generated by the `save_conversation` tool.
16
- Each session captures a complete conversation with metadata.
@@ -1,3 +0,0 @@
1
- # Code Style Standards
2
-
3
- _To be customized for your project._
@@ -1,31 +0,0 @@
1
- /**
2
- * Gets the next counter for a given date.
3
- *
4
- * This function:
5
- * 1. looks inside the date subdirectory (sessions/YYYY-MM-DD/)
6
- * 2. extracts all counters from files matching NNN_slug.md pattern
7
- * 3. finds the highest counter
8
- * 4. returns next counter (highest + 1), zero-padded to 3 digits
9
- *
10
- * Example:
11
- * >>> const counter = await getNextCounter("2025-12-23");
12
- * >>> counter
13
- * '003'
14
- */
15
- export declare function getNextCounter(date: string): Promise<string>;
16
- /**
17
- * Gets current date in YYYY-MM-DD format (UTC).
18
- */
19
- export declare function getCurrentDate(): string;
20
- /**
21
- * Validates date format (YYYY-MM-DD).
22
- */
23
- export declare function isValidDateFormat(date: string): boolean;
24
- /**
25
- * Gets all session files for a specific date.
26
- */
27
- export declare function getSessionsForDate(date: string): string[];
28
- /**
29
- * Builds filename from counter and slug (NNN_slug.md format).
30
- */
31
- export declare function buildFilename(counter: string, slug: string): string;
@@ -1,17 +0,0 @@
1
- import type { SessionEntry } from "./types";
2
- /**
3
- * Writes a session entry to the sessions directory.
4
- *
5
- * This function:
6
- * 1. ensures date subdirectory exists (sessions/YYYY-MM-DD/)
7
- * 2. builds filename from counter and slug (NNN_slug.md)
8
- * 3. generates enhanced session content
9
- * 4. writes file atomically
10
- * 5. returns full file path
11
- */
12
- export declare function writeSession(entry: SessionEntry): string;
13
- /**
14
- * Calculates session duration from timestamp metadata.
15
- * Returns formatted string like "45 minutes" or "2 hours 15 minutes".
16
- */
17
- export declare function calculateDuration(startTime: Date, endTime: Date): string;
@@ -1,14 +0,0 @@
1
- import type { SlugContext } from "./types";
2
- /**
3
- * Generates a semantic slug using simple context string.
4
- *
5
- * This function takes a context string (usually from user's note or session summary)
6
- * and generates a kebab-case slug using Claude Haiku.
7
- *
8
- * Example:
9
- * >>> const slug = await generateSlug("Implemented user authentication system");
10
- * >>> slug
11
- * 'implement-user-auth'
12
- */
13
- export declare function generateSlug(contextString: string, context?: SlugContext): Promise<string>;
14
- export declare function slugToTitle(slug: string): string;
@@ -1,28 +0,0 @@
1
- export interface SaveConversationArgs {
2
- note?: string;
3
- }
4
- export interface SessionEntry {
5
- sessionID: string;
6
- transcriptPath: string;
7
- savedAt: string;
8
- date: string;
9
- counter: string;
10
- slug: string;
11
- title: string;
12
- summary: string;
13
- note?: string;
14
- duration?: string;
15
- messageCount: number;
16
- tokensBefore: number;
17
- tokensInput?: number;
18
- tokensOutput?: number;
19
- }
20
- export interface SlugContext {
21
- maxMessages?: number;
22
- maxContextChars?: number;
23
- }
24
- export interface CounterInfo {
25
- date: string;
26
- counter: string;
27
- highestFound: number;
28
- }