/**
 * init command - Initialize a new Stoneforge workspace
 *
 * Creates the .stoneforge/ directory with:
 * - Empty database with default operator entity
 * - Default configuration file
 * - gitignore file
 */
import type { Command } from '../types.js';
import { type EntityId } from '@stoneforge/core';
/**
 * Default operator entity ID - used as the CLI user and default actor
 */
export declare const OPERATOR_ENTITY_ID: EntityId;
/**
 * Default operator entity name
 */
export declare const OPERATOR_ENTITY_NAME = "operator";
export declare const DEFAULT_AGENTS_MD = "# AGENTS.md\n\nContext and instructions for AI coding agents working in this Stoneforge workspace.\n\n## Quick Start\n\n| I need...                  | Where to look                              |\n| -------------------------- | ------------------------------------------ |\n| Project documentation      | Check your project's `docs/` directory   |\n| Core type details          | `sf show <id>` or workspace docs         |\n| CLI commands               | `sf help` or `sf <command> --help`     |\n| Architecture overview      | Check your project's `docs/` directory   |\n\n---\n\n## Core Concepts\n\n### Element Types\n\n- **Core Types**: Task, Message, Document, Entity\n- **Collection Types**: Plan, Workflow, Playbook, Channel, Library, Team\n- **All inherit from Element** (id, type, timestamps, tags, metadata, createdBy)\n\n### Dual Storage Model\n\n- **SQLite**: Fast queries, indexes, FTS \u2014 the **cache**\n- **JSONL**: Git-tracked, append-only \u2014 the **source of truth**\n\n### Dependencies\n\n- **Blocking types**: `blocks`, `awaits`, `parent-child` \u2014 affect task status\n- **Non-blocking**: `relates-to`, `mentions`, `references` \u2014 informational only\n- `blocked` status is **computed** from dependencies, never set directly\n\n### Agent Roles (Orchestrator)\n\n- **Director**: Owns task backlog, spawns workers, makes strategic decisions\n- **Worker**: Executes assigned tasks (ephemeral or persistent)\n- **Steward**: Handles code merges, documentation scanning and fixes\n\n---\n\n## CLI Usage\n\n```bash\nsf task ready         # List ready tasks\nsf task blocked       # List blocked tasks\nsf show <id>          # Show element details\nsf task create --title \"...\" --priority 3 --type feature\nsf dependency add --type=blocks <blocked-id> <blocker-id>\nsf task close <id> --reason \"...\"\nsf stats              # View progress stats\n```\n\n---\n\n## Critical Gotchas\n\n1. **`blocked` is computed** \u2014 Never set `status: 'blocked'` directly; it's derived from dependencies\n2. **`blocks` direction** \u2014 `sf dependency add --type=blocks A B` means A is blocked BY B (B completes first)\n3. **Messages need `contentRef`** \u2014 `sendDirectMessage()` requires a `DocumentId`, not raw text\n4. **`sortByEffectivePriority()` mutates** \u2014 Returns same array reference, modifies in place\n5. **SQLite is cache** \u2014 JSONL is the source of truth; SQLite can be rebuilt\n6. **No auto cycle detection** \u2014 `api.addDependency()` doesn't check cycles; use `DependencyService.detectCycle()`\n7. **FTS not indexed on import** \u2014 After `sf import`, run `sf document reindex` to rebuild search index\n8. **`relates-to` is bidirectional** \u2014 Query both directions: `getDependencies()` AND `getDependents()`\n9. **Closed/tombstone always wins** \u2014 In merge conflicts, these statuses take precedence\n10. **Dirty tracking** \u2014 All mutations through QuarryAPI; never modify SQLite directly\n\n---\n\n## Implementation Guidelines\n\n### Type Safety\n\n- Use branded types: `ElementId`, `TaskId`, `EntityId`, `DocumentId`\n- Implement type guards: `isTask()`, `isElement()`, etc.\n- Use `asEntityId()`, `asElementId()` casts only at trust boundaries\n\n### Storage Operations\n\n- All mutations through `QuarryAPI` \u2014 never modify SQLite directly\n- Dirty tracking marks elements for incremental export\n- Content hashing enables merge conflict detection\n\n### Testing\n\n- Tests colocated with source: `*.test.ts` next to `*.ts`\n- Integration tests use real SQLite (`:memory:` or temp files)\n\n### Error Handling\n\n- Use `StoneforgeError` with appropriate `ErrorCode`\n- CLI formats errors based on output mode (standard, verbose, quiet)\n\n---\n\n## Agent Orchestration Overview\n\nThe orchestrator manages AI agent lifecycles for multi-agent task execution:\n\n```\nDirector \u2192 creates tasks, assigns priorities \u2192 dispatches to Workers\nWorkers  \u2192 execute tasks in git worktrees \u2192 update status, handoff\nStewards \u2192 merge completed work, documentation scanning and fixes\n```\n\nOverride built-in agent prompts by placing files in `.stoneforge/prompts/`.\n\n---\n\n## Commit Guidelines\n\n- Create commits after completing features, refactors, or significant changes\n- Only commit files you changed\n- Use conventional commit format: `feat:`, `fix:`, `chore:`, `docs:`\n";
export declare const initCommand: Command;
//# sourceMappingURL=init.d.ts.map