snipara-companion 1.4.2 → 1.4.4

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.
package/README.md CHANGED
@@ -4,8 +4,9 @@
4
4
 
5
5
  `snipara-companion` adds Git-style continuity commands for agent work: status,
6
6
  briefs, timelines, phase commits, handoffs, resume, diagnostics, hooks, folder
7
- onboarding, and command-line access around Snipara Hosted MCP. It complements
8
- the hosted context and memory surface; it is not the primary runtime for agents.
7
+ onboarding, local Mini Snipara bridges, and command-line access around Snipara
8
+ Hosted MCP. It complements the hosted context and memory surface; it is not the
9
+ primary runtime for agents.
9
10
 
10
11
  In this repository, the source currently lives in `packages/cli`, and the installed executable is `snipara-companion`.
11
12
 
@@ -15,10 +16,42 @@ This package complements `snipara-mcp`. It does not replace it.
15
16
  flowchart LR
16
17
  Project["Local project"] --> Companion["snipara-companion"]
17
18
  Companion --> Diagnostics["status, brief, timeline, phase commits, handoff"]
19
+ Companion --> Memory["snipara-memory (optional local memory)"]
20
+ Companion --> Evals["snipara-evals (optional local evals)"]
18
21
  Companion --> Hosted["Snipara Hosted MCP / API"]
19
22
  Hosted --> Agents["Codex, Claude Code, Cursor, ChatGPT"]
20
23
  ```
21
24
 
25
+ ## Mini Snipara Open Stack
26
+
27
+ `snipara-companion` is the local workflow layer in the open Mini Snipara stack:
28
+
29
+ | Repo | Role | Account required |
30
+ | ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------- |
31
+ | [`snipara-companion`](https://github.com/Snipara/snipara-companion) | Local workflow continuity, hooks, handoffs, and hosted bridges | No for local state; yes for hosted calls |
32
+ | [`snipara-memory`](https://github.com/Snipara/snipara-memory) | Local durable project memory engine and MCP/API wrapper | No |
33
+ | [`snipara-evals`](https://github.com/Snipara/snipara-evals) | Deterministic Project Intelligence evals for handoffs, context, decisions, impact, verification, and continuity | No |
34
+
35
+ Hosted Snipara remains the managed layer for source authority, reviewed memory,
36
+ team-wide presence, shared claims/locks, conflict alarms, GitHub checks,
37
+ dashboard live views, and Cloud code graph impact. Local commands are useful for
38
+ single-machine continuity and CI artifacts, but they cannot prove what another
39
+ human or agent is doing on a different machine unless the hosted collaboration
40
+ backend is configured.
41
+
42
+ ## Local vs Hosted Capabilities
43
+
44
+ | Capability | Local/open stack | Hosted Snipara |
45
+ | -------------------------------------------- | ---------------------------------- | ------------------------------------------- |
46
+ | Workflow state, timeline, handoff files | Yes | Syncs and enriches when configured |
47
+ | Local project memory | Via `snipara-memory` | Managed, reviewed, scoped memory |
48
+ | Project Intelligence eval artifacts | Via `snipara-evals` | Can use hosted context/code graph as inputs |
49
+ | Git hooks and local guards | Yes | Stronger with hosted guard decisions |
50
+ | Presence across machines and agents | No | Yes |
51
+ | Shared claims/locks and stale lease handling | Local only is advisory | Yes |
52
+ | GitHub checks and dashboard live views | No | Yes |
53
+ | Code graph impact and symbol cards | Local overlay only where available | Cloud code graph |
54
+
22
55
  ## When To Use It
23
56
 
24
57
  | If you need... | Install... |
@@ -59,6 +92,18 @@ yarn global add snipara-companion
59
92
  snipara-companion
60
93
  ```
61
94
 
95
+ ## New In 1.4.4
96
+
97
+ - Adds `snipara-companion memory local -- <args...>` as a thin bridge to the
98
+ open `snipara-memory` engine for no-account local memory workflows.
99
+ - Adds `snipara-companion eval export` to write a `snipara-evals` case from
100
+ local workflow, Team Sync, file, command, and expected-signal inputs.
101
+ - Adds `snipara-companion eval run` to execute `snipara-evals` through `npx` or a
102
+ configured local runner.
103
+ - Clarifies the open Mini Snipara stack boundary: local continuity and evals are
104
+ open, while team-wide presence, shared locks, GitHub checks, dashboards, and
105
+ Cloud code graph remain hosted Snipara capabilities.
106
+
62
107
  ## New In 1.4.2
63
108
 
64
109
  - Adds `snipara-companion collaboration start|watch|claim|guard|release|status`
@@ -514,6 +559,16 @@ snipara-companion memory audit --scope project --include-inactive
514
559
  snipara-companion memory health --scope project --json
515
560
  snipara-companion memory clean-candidates --scope project --limit-per-bucket 10
516
561
  snipara-companion memory compact --scope project --json
562
+ snipara-companion memory local -- version
563
+ snipara-companion eval export \
564
+ --summary "Implemented auth hardening and ran tests" \
565
+ --decision "Code graph remains hosted" \
566
+ --verification "pnpm test" \
567
+ --continuity "Leave a concise next-step handoff" \
568
+ --files src/auth.ts tests/auth.test.ts \
569
+ --command-run "pnpm test" \
570
+ --output .snipara/evals/auth-hardening.json
571
+ snipara-companion eval run .snipara/evals/auth-hardening.json --strict
517
572
  snipara-companion chunk get --chunk-id chunk_123
518
573
  snipara-companion multi-query --queries "auth flow" "rate limiting"
519
574
  snipara-companion orchestrate --query "understand the auth architecture"
@@ -686,6 +741,9 @@ Semantics:
686
741
  - `snipara-companion memory health` = direct hosted `snipara_memory_health` diagnostics for active counts, stale/noise/anomaly samples, and auto-compaction threshold status
687
742
  - `snipara-companion memory clean-candidates` = direct hosted `snipara_memory_clean_candidates` review packet for noise, stale memories, duplicates, category anomalies, and human review queues
688
743
  - `snipara-companion memory compact` = hosted compaction preview only; it always calls `snipara_memory_compact` with `dry_run=true` and never mutates memory
744
+ - `snipara-companion memory local -- <args...>` = pass-through to the open `snipara-memory` CLI for local no-account memory workflows
745
+ - `snipara-companion eval export` = write a `snipara-evals` case JSON from local workflow/team-sync state and explicit expected signals
746
+ - `snipara-companion eval run <case.json...>` = run `snipara-evals` locally through `npx` or `SNIPARA_EVALS_RUNNER`
689
747
  - `snipara-companion reindex` = trigger or poll hosted `snipara_reindex`; use after uploads when immediate chunk availability matters
690
748
  - `snipara-companion code *` = direct access to the code graph tools without routing through `snipara_context_query`
691
749
  - `snipara-companion recall` = direct durable memory lookup for decisions, learnings, preferences, and carryover
package/dist/index.d.ts CHANGED
@@ -1305,6 +1305,68 @@ declare function memoryCompactCommand(options: MemoryCompactCommandOptions): Pro
1305
1305
  declare function buildMemoryAudit(options: MemoryAuditCommandOptions): Promise<MemoryAuditResult>;
1306
1306
  declare function memoryAuditCommand(options: MemoryAuditCommandOptions): Promise<void>;
1307
1307
 
1308
+ type ExpectedSectionName = "context" | "decisions" | "impact" | "verification" | "continuity";
1309
+ interface LocalMemoryCommandOptions {
1310
+ binary?: string;
1311
+ args?: string[];
1312
+ }
1313
+ interface EvalExportOptions {
1314
+ id?: string;
1315
+ name?: string;
1316
+ description?: string;
1317
+ summary?: string;
1318
+ context?: string[];
1319
+ decision?: string[];
1320
+ impact?: string[];
1321
+ verification?: string[];
1322
+ continuity?: string[];
1323
+ files?: string[];
1324
+ commandRun?: string[];
1325
+ output?: string;
1326
+ dir?: string;
1327
+ json?: boolean;
1328
+ }
1329
+ interface EvalRunOptions {
1330
+ cases: string[];
1331
+ runner?: string;
1332
+ packageSpec?: string;
1333
+ json?: boolean;
1334
+ strict?: boolean;
1335
+ }
1336
+ interface EvalCaseArtifact {
1337
+ id: string;
1338
+ name?: string;
1339
+ description?: string;
1340
+ tags: string[];
1341
+ expected: Partial<Record<ExpectedSectionName, Array<{
1342
+ id: string;
1343
+ text?: string;
1344
+ statement?: string;
1345
+ target?: string;
1346
+ check?: string;
1347
+ command?: string;
1348
+ handoff?: string;
1349
+ keywords: string[];
1350
+ files?: string[];
1351
+ }>>>;
1352
+ observed: {
1353
+ answer: string;
1354
+ filesChanged: string[];
1355
+ commandsRun: string[];
1356
+ artifacts: Array<{
1357
+ path: string;
1358
+ content: string;
1359
+ }>;
1360
+ };
1361
+ thresholds: {
1362
+ overall: number;
1363
+ };
1364
+ }
1365
+ declare function buildEvalCaseArtifact(options?: EvalExportOptions): EvalCaseArtifact;
1366
+ declare function memoryLocalCommand(options: LocalMemoryCommandOptions): Promise<void>;
1367
+ declare function evalExportCommand(options: EvalExportOptions): Promise<void>;
1368
+ declare function evalRunCommand(options: EvalRunOptions): Promise<void>;
1369
+
1308
1370
  interface VerifyCommandOptions {
1309
1371
  task?: string;
1310
1372
  qualifiedName?: string;
@@ -2403,4 +2465,4 @@ interface WrittenOrchestratorHandoff {
2403
2465
  declare function buildOrchestratorHandoff(options: OrchestratorHandoffOptions): OrchestratorHandoffArtifact;
2404
2466
  declare function writeOrchestratorHandoff(options: OrchestratorHandoffOptions): WrittenOrchestratorHandoff;
2405
2467
 
2406
- export { AUTOMATION_MANIFEST_RELATIVE_PATH, AutomationInstallConflictError, AutomationUnsupportedHookBundleError, COLLABORATION_STATE_RELATIVE_PATH, ORCHESTRATOR_HANDOFF_RELATIVE_PATH, TEAM_SYNC_STATE_RELATIVE_PATH, WORKFLOW_PLANS_RELATIVE_DIR, WORKFLOW_STATE_RELATIVE_PATH, archiveInactiveTeamSyncWork, autoArchiveTeamSyncState, buildAgenticHandoffMarkdown, buildAgenticTimeline, buildAgenticWorkStatus, buildAutomationInstallPlan, buildCanonicalEvent, buildCodeHooksInstallPlan, buildCodePromotionResult, buildCodeStatusResult, buildCodeSyncResult, buildCollaborationActor, buildCollaborationHooksInstallPlan, buildHostedCodeOverlayUploadPayload, buildJournalCheckpointEntry, buildLocalCallersResult, buildLocalCodeOverlay, buildLocalImpactResult, buildLocalImportsResult, buildLocalNeighborsResult, buildLocalShortestPathResult, buildMemoryAudit, buildOnboardFolderManifest, buildOrchestratorHandoff, buildProjectIntelligenceBrief, buildSyncDocumentsDryRun, buildTeamSyncHandoffRecord, buildTeamSyncStartWorkRecord, buildTeamSyncSummary, buildToolCallPayload, buildToolResultPayload, buildVerificationPlan, buildWorkflowPhaseCommitSummary, buildWorkflowPlanScaffold, categoryFromGuardTag, classifyToolResult, collaborationIdeStatusCommand, collectSyncDocuments, collectSyncDocumentsInput, createClient, createEmptyCollaborationState, createEmptyTeamSyncState, createLocalQueryCache, deriveLocalCollaborationResourcesFromFiles, detectReleaseSurfacesFromFiles, detectRuntimeEnvironment, extractCommandFromToolInput, extractFilesFromToolInput, formatOrchestratorRecommendationReason, formatStuckGuardDecision, getAutomationManifestPath, getAutomationStatus, getCollaborationStatePath, getConfigPath, getLocalCodeOverlayCachePath, getLocalCodePromotionStatePath, getOrchestratorRecommendation, getPlanStepDisplayTitle, getStagedFiles, getStuckGuardInjection, getTeamSyncStatePath, ingestReferences, installAutomationBundle, listProjectsForApiKey, loadAutomationManifest, loadCollaborationState, loadConfig, loadTeamSyncState, memoryAuditCommand, memoryCleanCandidatesCommand, memoryCompactCommand, memoryHealthCommand, normalizeCollaborationFiles, normalizeGuardTag, normalizeWorkflowPlanInput, parseCollaborationResources, projectIntelligenceBriefCommand, readLocalCodeOverlayCache, readLocalCodePromotionState, referencesIngestCommand, referencesScanCommand, resolveQueryFromToolInput, runMemoryGuardCheck, saveCollaborationState, saveConfig, saveTeamSyncState, scanReferences, shouldSuggestOrchestratorForWorkflow, shouldSuggestRuntimeForWorkflow, summarizeLocalCodeOverlay, teamSyncSweepCommand, verifyCommand, writeLocalCodeOverlayCache, writeLocalCodePromotionState, writeOrchestratorHandoff };
2468
+ export { AUTOMATION_MANIFEST_RELATIVE_PATH, AutomationInstallConflictError, AutomationUnsupportedHookBundleError, COLLABORATION_STATE_RELATIVE_PATH, ORCHESTRATOR_HANDOFF_RELATIVE_PATH, TEAM_SYNC_STATE_RELATIVE_PATH, WORKFLOW_PLANS_RELATIVE_DIR, WORKFLOW_STATE_RELATIVE_PATH, archiveInactiveTeamSyncWork, autoArchiveTeamSyncState, buildAgenticHandoffMarkdown, buildAgenticTimeline, buildAgenticWorkStatus, buildAutomationInstallPlan, buildCanonicalEvent, buildCodeHooksInstallPlan, buildCodePromotionResult, buildCodeStatusResult, buildCodeSyncResult, buildCollaborationActor, buildCollaborationHooksInstallPlan, buildEvalCaseArtifact, buildHostedCodeOverlayUploadPayload, buildJournalCheckpointEntry, buildLocalCallersResult, buildLocalCodeOverlay, buildLocalImpactResult, buildLocalImportsResult, buildLocalNeighborsResult, buildLocalShortestPathResult, buildMemoryAudit, buildOnboardFolderManifest, buildOrchestratorHandoff, buildProjectIntelligenceBrief, buildSyncDocumentsDryRun, buildTeamSyncHandoffRecord, buildTeamSyncStartWorkRecord, buildTeamSyncSummary, buildToolCallPayload, buildToolResultPayload, buildVerificationPlan, buildWorkflowPhaseCommitSummary, buildWorkflowPlanScaffold, categoryFromGuardTag, classifyToolResult, collaborationIdeStatusCommand, collectSyncDocuments, collectSyncDocumentsInput, createClient, createEmptyCollaborationState, createEmptyTeamSyncState, createLocalQueryCache, deriveLocalCollaborationResourcesFromFiles, detectReleaseSurfacesFromFiles, detectRuntimeEnvironment, evalExportCommand, evalRunCommand, extractCommandFromToolInput, extractFilesFromToolInput, formatOrchestratorRecommendationReason, formatStuckGuardDecision, getAutomationManifestPath, getAutomationStatus, getCollaborationStatePath, getConfigPath, getLocalCodeOverlayCachePath, getLocalCodePromotionStatePath, getOrchestratorRecommendation, getPlanStepDisplayTitle, getStagedFiles, getStuckGuardInjection, getTeamSyncStatePath, ingestReferences, installAutomationBundle, listProjectsForApiKey, loadAutomationManifest, loadCollaborationState, loadConfig, loadTeamSyncState, memoryAuditCommand, memoryCleanCandidatesCommand, memoryCompactCommand, memoryHealthCommand, memoryLocalCommand, normalizeCollaborationFiles, normalizeGuardTag, normalizeWorkflowPlanInput, parseCollaborationResources, projectIntelligenceBriefCommand, readLocalCodeOverlayCache, readLocalCodePromotionState, referencesIngestCommand, referencesScanCommand, resolveQueryFromToolInput, runMemoryGuardCheck, saveCollaborationState, saveConfig, saveTeamSyncState, scanReferences, shouldSuggestOrchestratorForWorkflow, shouldSuggestRuntimeForWorkflow, summarizeLocalCodeOverlay, teamSyncSweepCommand, verifyCommand, writeLocalCodeOverlayCache, writeLocalCodePromotionState, writeOrchestratorHandoff };