@codemem/core 0.39.0 → 0.39.1
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/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/ingest-prompts.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This package owns the SQLite store, embedding worker interface,
|
|
5
5
|
* and type definitions shared across the codemem TS backend.
|
|
6
6
|
*/
|
|
7
|
-
export declare const VERSION = "0.39.
|
|
7
|
+
export declare const VERSION = "0.39.1";
|
|
8
8
|
export * as Api from "./api-types.js";
|
|
9
9
|
export { extractApplyPatchPaths, MUTATING_TOOL_NAMES } from "./apply-patch.js";
|
|
10
10
|
export type { CreateBetterSqliteCoordinatorAppOptions } from "./better-sqlite-coordinator-runtime.js";
|
package/dist/index.js
CHANGED
|
@@ -15719,7 +15719,7 @@ function ab(e, t, n) {
|
|
|
15719
15719
|
}
|
|
15720
15720
|
//#endregion
|
|
15721
15721
|
//#region src/ingest-prompts.ts
|
|
15722
|
-
var ob = "bugfix, feature, refactor, change, discovery, decision, exploration", sb = "You are a memory observer creating searchable records of development work FOR FUTURE SESSIONS. Record what was BUILT/FIXED/DEPLOYED/CONFIGURED/LEARNED, not what you (the observer) are doing. These memories help developers recall past work, decisions, learnings, and investigations.", cb = "Focus on deliverables, capabilities, AND learnings:\n- What the system NOW DOES differently (new capabilities)\n- What shipped to users/production (features, fixes, configs, docs)\n- What was LEARNED through debugging, investigation, or testing\n- How systems work and why they behave the way they do\n- Changes in technical domains (auth, data, UI, infra, DevOps)\n\nUse outcome-focused verbs: implemented, fixed, deployed, configured, migrated, optimized, added, refactored, discovered, learned, debugged.\nOnly describe actions that are clearly supported by the observed context.\nNever invent file changes, API behavior, or code edits that are not explicitly present in the session evidence.\n\nGOOD examples (describes what was built or learned):\n- \"Authentication now supports OAuth2 with PKCE flow\"\n- \"Deployment pipeline runs canary releases with auto-rollback\"\n- \"Fixed race condition in session handler causing duplicate events\"\n- \"Discovered flush timing strategy needed adaptation for multi-session environment\"\n- \"Learned transcript building was broken - empty strings passed instead of conversation\"\n\nBAD examples (describes observation process - DO NOT DO THIS):\n- \"Analyzed authentication implementation and stored findings in database\"\n- \"Tracked deployment steps and logged outcomes to memory system\"\n- \"Recorded investigation results for later reference\"", lb = "Skip routine operations WITHOUT learnings:\n- Empty status checks or listings (unless revealing important state)\n- Package installations with no errors or insights\n- Simple file reads with no discoveries\n- Repetitive operations already documented with no new findings\nIf nothing meaningful happened AND nothing was learned:\n- Output no <observation> blocks\n- Output <skip_summary reason=\"low-signal\"/> instead of a <summary> block.", ub = "Observation worthiness
|
|
15722
|
+
var ob = "bugfix, feature, refactor, change, discovery, decision, exploration", sb = "You are a memory observer creating searchable records of development work FOR FUTURE SESSIONS. Record what was BUILT/FIXED/DEPLOYED/CONFIGURED/LEARNED, not what you (the observer) are doing. These memories help developers recall past work, decisions, learnings, and investigations.", cb = "Focus on deliverables, capabilities, AND learnings:\n- What the system NOW DOES differently (new capabilities)\n- What shipped to users/production (features, fixes, configs, docs)\n- What was LEARNED through debugging, investigation, or testing\n- How systems work and why they behave the way they do\n- Changes in technical domains (auth, data, UI, infra, DevOps)\n\nUse outcome-focused verbs: implemented, fixed, deployed, configured, migrated, optimized, added, refactored, discovered, learned, debugged.\nOnly describe actions that are clearly supported by the observed context.\nNever invent file changes, API behavior, or code edits that are not explicitly present in the session evidence.\n\nGOOD examples (describes what was built or learned):\n- \"Authentication now supports OAuth2 with PKCE flow\"\n- \"Deployment pipeline runs canary releases with auto-rollback\"\n- \"Fixed race condition in session handler causing duplicate events\"\n- \"Discovered flush timing strategy needed adaptation for multi-session environment\"\n- \"Learned transcript building was broken - empty strings passed instead of conversation\"\n\nBAD examples (describes observation process - DO NOT DO THIS):\n- \"Analyzed authentication implementation and stored findings in database\"\n- \"Tracked deployment steps and logged outcomes to memory system\"\n- \"Recorded investigation results for later reference\"", lb = "Skip routine operations WITHOUT learnings:\n- Empty status checks or listings (unless revealing important state)\n- Package installations with no errors or insights\n- Simple file reads with no discoveries\n- Repetitive operations already documented with no new findings\nIf nothing meaningful happened AND nothing was learned:\n- Output no <observation> blocks\n- Output <skip_summary reason=\"low-signal\"/> instead of a <summary> block.", ub = "Observation worthiness policy:\n- Emit an <observation> only for a durable, reusable lesson such as a constraint, root cause, decision with rationale, or how-it-works insight.\n- When a durable lesson exists, emit it as an <observation>; do not leave it only in <summary>.\n- Routine status, review, setup, and workflow narration belongs only in <summary>.\n- Zero observations is valid when the session contains no durable lesson.", db = "Create narratives that tell the complete story:\n- Context: What was the problem or goal? What prompted this work?\n- Investigation: What was examined? What was discovered?\n- Learning: How does it work? Why does it exist? Any gotchas?\n- Implementation: What was changed? What does the code do now?\n- Impact: What's better? What does the system do differently?\n- Next steps: What remains? What should future sessions know?\n\nAim for ~120-400 words per significant work item.\nPrefer fewer, higher-signal observations over many small ones.\nInclude specific details when present: file paths, function names, configuration values.", fb = "When the session contains MULTIPLE meaningful threads:\n- Before writing XML, mentally inventory the 2-4 highest-value subthreads that future sessions would most want for rediscovery reduction.\n- Treat the <summary> as the broad session-wide state, not a recap of only the latest thread.\n- Cover the major subthreads in the summary when they materially changed the direction, outcome, or understanding of the work.\n- Do not let recency dominate: a long transcript often ends on only one thread, but the output should still represent the major work across the full observed batch.\n- Emit a SMALL capped set of durable <observation> blocks for the subthreads that pass the worthiness bar (usually 2-4, not a dump of everything).\n- If 2 or more subthreads each pass the worthiness bar, cover each with its own <observation>; do not collapse them into summary-only output.\n- If no subthread passes the worthiness bar, emit a <summary> and zero <observation> blocks — a long, busy session can still contain nothing durable.\n- Prefer one durable observation per distinct subthread, not several observations for one thread and silence for the others.\n- Prefer coverage diversity: do not emit multiple observations that mostly restate the same dominant thread.\n- Choose subthreads that future sessions would most want for rediscovery reduction: important decisions, durable learnings, shipped changes, closed investigations, or troubleshooting outcomes.\n- If one thread clearly dominates and the rest are trivial, keep a single observation. Do not invent diversity where none exists.", pb = "Output only XML. Do not include commentary outside XML.\n\nEmit <observation> blocks only for content that passes the observation worthiness bar. Observations are the durable layer - they capture what was built, fixed, learned, or decided. Also emit a <summary> block to track session progress; the summary alone carries routine activity.\n\nFor rich multi-thread sessions, prefer one broad summary plus a small set of durable observations covering the highest-value subthreads.\n\nFor rich sessions, do not return summary-only output when multiple substantial durable subthreads are present.\n\nDo not collapse a rich batch into only the final or most recent thread when earlier threads produced durable decisions, learnings, or outcomes.\n\nPrefer fewer, more comprehensive observations over many small ones.", mb = `<observation>
|
|
15723
15723
|
<type>[ ${ob} ]</type>
|
|
15724
15724
|
<!--
|
|
15725
15725
|
type MUST be EXACTLY one of these 7 options:
|
|
@@ -20660,7 +20660,7 @@ function VT(e, t = "local") {
|
|
|
20660
20660
|
}
|
|
20661
20661
|
//#endregion
|
|
20662
20662
|
//#region src/index.ts
|
|
20663
|
-
var HT = "0.39.
|
|
20663
|
+
var HT = "0.39.1";
|
|
20664
20664
|
//#endregion
|
|
20665
20665
|
export { qd as ACCESS_CLEANUP_OP_TYPE, Ae as Api, $e as BetterSqliteCoordinatorStore, Rt as CODEMEM_CONFIG_ENV_OVERRIDES, l_ as DEDUP_KEY_BACKFILL_JOB, m_ as DEFAULT_CONTEXT_FACT_KINDS, B as DEFAULT_COORDINATOR_DB_PATH, kn as DEFAULT_DB_PATH, ud as DEFAULT_SCOPE_MEMBERSHIP_CACHE_MAX_AGE_MS, dw as DEFAULT_SERVICE_TYPE, Kd as DEFAULT_SYNC_SCOPE_ID, s as DEFAULT_TIME_WINDOW_S, hv as DISTILL_BLOCK_BEGIN, gv as DISTILL_BLOCK_END, mv as DISTILL_LESSONS_HEADING, p_ as DedupKeyBackfillRunner, Qi as INJECTION_EVAL_SCENARIO_PACKS, Ta as LEGACY_SHARED_REVIEW_SCOPE_ID, wa as LOCAL_DEFAULT_SCOPE_ID, eS as LOCAL_SYNC_CAPABILITY, qy as LOW_SIGNAL_TOOLS, Ar as MAPPABLE_CLAUDE_HOOK_EVENTS, Jr as MAPPABLE_CODEX_HOOK_EVENTS, En as MIN_COMPATIBLE_SCHEMA, je as MUTATING_TOOL_NAMES, tm as MemoryStore, Jm as ObserverAuthAdapter, Eh as ObserverAuthError, $h as ObserverClient, FC as REF_BACKFILL_JOB, Cy as RICH_TIER_DEFAULTS, PC as RawEventSweeper, VC as RefBackfillRunner, Tn as SCHEMA_VERSION, Px as SCOPE_BACKFILL_JOB, r as SCOPE_MEMBERSHIP_REVOCATION_LIMITATION, HC as SESSION_CONTEXT_BACKFILL_JOB, br as SIGNATURE_VERSION, Sy as SIMPLE_TIER_DEFAULTS, nw as SUMMARY_DEDUP_BACKFILL_JOB, Qx as SYNC_CAPABILITIES, $x as SYNC_CAPABILITY_HEADER, MT as SYNC_SCOPE_QUERY_PARAM, Xx as ScopeBackfillRunner, tw as SessionContextBackfillRunner, lw as SummaryDedupBackfillRunner, jT as SyncRetentionRunner, Sb as TRIVIAL_REQUESTS, aS as VECTOR_MODEL_MIGRATION_JOB, HT as VERSION, DS as VectorModelMigrationRunner, ic as _resetEmbeddingClient, FT as addSyncScopeToBoundary, ku as addressDedupeKey, Dw as advertiseMdns, mg as aiBackfillStructuredContent, wC as analyzeProjectScopeMappingChangeGuardrails, zS as applyBootstrapSnapshot, Cv as applyDistillRule, Np as applyReplicationOps, Wn as assertSchemaReady, Om as backfillMemoryDedupKeys, Cm as backfillNarrativeFromBody, Ap as backfillReplicationOps, Kx as backfillScopeIds, pm as backfillTagsText, Fc as backfillVectors, vn as bootstrapSchema, ab as budgetToolEvents, Tr as buildAuthHeaders, Pu as buildBaseUrl, xr as buildCanonicalRequest, Hm as buildCodexHeaders, bv as buildDistillDraftPrompt, kv as buildDistillJudgePrompt, fv as buildDistillReport, $a as buildFilterClauses, eo as buildFilterClausesWithContext, Gv as buildImportKey, ai as buildIngestPayloadFromCodexHook, qr as buildIngestPayloadFromHook, ru as buildMemoryPack, au as buildMemoryPackAsync, iu as buildMemoryPackTrace, ou as buildMemoryPackTraceAsync, bb as buildObserverPrompt, ii as buildRawEventEnvelopeFromCodexHook, Kr as buildRawEventEnvelopeFromHook, gx as buildSessionContext, jb as buildTranscript, zf as bulkPruneReplicationOpsByAgeCutoff, ji as canonicalMemoryKind, ja as canonicalWorkspaceIdentity, av as chunkDistillContextDocuments, vf as chunkOpsBySize, nc as chunkText, Lx as classifyLegacyMemoryScope, Hi as classifyMemoryWorthiness, lx as cleanOrphanSessions, Dr as cleanupNonces, xo as clearMemoryRefs, Df as clockTuple, nv as clusterDistillFeatures, im as compareMemoryRoleReports, hi as completeMaintenanceJob, Fn as connect, Qe as connectCoordinator, fT as consecutiveConnectivityFailures, Pg as coordinatorArchiveGroupAction, Mg as coordinatorCreateGroupAction, Yg as coordinatorCreateInviteAction, Rg as coordinatorCreateScopeAction, Kg as coordinatorDisableDeviceAction, qg as coordinatorEnableDeviceAction, Zu as coordinatorEnabled, Ug as coordinatorEnrollDeviceAction, Vg as coordinatorGrantScopeMembershipAction, Xg as coordinatorImportInviteAction, $g as coordinatorListBootstrapGrantsAction, Wg as coordinatorListDevicesAction, Ig as coordinatorListGroupsAction, Zg as coordinatorListJoinRequestsAction, Bg as coordinatorListScopeMembershipsAction, Lg as coordinatorListScopesAction, Jg as coordinatorRemoveDeviceAction, Gg as coordinatorRenameDeviceAction, Ng as coordinatorRenameGroupAction, Qg as coordinatorReviewJoinRequestAction, e_ as coordinatorRevokeBootstrapGrantAction, Hg as coordinatorRevokeScopeMembershipAction, cd as coordinatorStatusSnapshot, Fg as coordinatorUnarchiveGroupAction, zg as coordinatorUpdateScopeAction, Or as createBetterSqliteCoordinatorApp, pv as createContextFactDetector, l as createCoordinatorApp, od as createCoordinatorReciprocalApproval, Iw as cursorAdvances, bm as deactivateLowSignalMemories, ym as deactivateLowSignalObservations, Py as decideExtractionReplayTier, c as decodeInvitePayload, xm as dedupNearDuplicateMemories, Xs as dedupeOrderedIds, t_ as defaultSpaceScopeIdForGroup, c_ as deleteCoordinatorGroupPreference, kC as deleteProjectScopeSettingsMapping, Ab as deriveRequest, Gd as deriveTags, fp as diagnoseStalePeerReceivedRows, Ow as discoverPeersViaMdns, Sv as draftDistillRule, ov as embedDistillContextChunks, sc as embedTexts, dv as emitDistillCandidates, t as encodeInvitePayload, yr as ensureDeviceIdentity, _i as ensureMaintenanceJobsSchema, Sn as ensureSchemaBootstrapped, zx as ensureScopeBackfillScopes, gd as ensureScopeMembershipCacheStateTable, Kc as estimateTokens, by as evaluateSessionExtractionItems, Qy as eventToToolEvent, Qo as expandQuery, ec as explain, e as explainScopeMembershipRevocation, ey as exportMemories, eb as extractAdapterEvent, Me as extractApplyPatchPaths, Mb as extractAssistantMessages, Nb as extractAssistantUsage, i as extractInvitePayload, Sm as extractNarrativeFromBody, Lm as extractOAuthAccess, Bm as extractOAuthAccountId, Vm as extractOAuthExpires, Pb as extractPrompts, Rm as extractProviderApiKey, Ef as extractReplicationOps, $y as extractToolEvents, gi as failMaintenanceJob, kS as fetchAllSnapshotPages, id as fetchCoordinatorStalePeers, Wd as fileTags, cp as filterReplicationOpsForSync, sp as filterReplicationOpsForSyncWithStatus, To as findByConcept, wo as findByFile, a as fingerprintPublicKey, kb as firstSentence, vx as flushRawEvents, Ou as formatHostPort, Zn as fromJson, Qn as fromJsonStrict, hr as generateKeypair, Vd as getCachedScopeAuthorization, Bt as getCodememConfigPath, Gt as getCodememEnvOverrides, a_ as getCoordinatorGroupPreference, oc as getEmbeddingClient, fy as getExtractionBenchmarkProfile, Zi as getInjectionEvalScenarioByPrompt, $i as getInjectionEvalScenarioPack, ea as getInjectionEvalScenarioPrompts, Q as getMaintenanceJob, Ca as getMemoryArtifactReport, rm as getMemoryRoleReport, qt as getOpenCodeProviderConfig, un as getProviderApiKey, cn as getProviderBaseUrl, ln as getProviderHeaders, sn as getProviderOptions, wi as getRawEventRelinkPlan, Ci as getRawEventRelinkReport, am as getRawEventStatus, sm as getReliabilityMetrics, Sf as getReplicationCursor, Un as getSchemaVersion, kc as getSemanticIndexDiagnostics, xy as getSessionExtractionEval, yy as getSessionExtractionEvalScenario, Oi as getSummaryMetadata, yT as getSyncDaemonPhase, pf as getSyncResetState, Nt as getWorkspaceCodememConfigPath, Pt as getWorkspaceScopedCodememConfigPath, qb as hasMeaningfulObservation, u_ as hasPendingDedupKeyBackfill, LC as hasPendingRefBackfill, Ux as hasPendingScopeBackfill, QC as hasPendingSessionContextBackfill, iw as hasPendingSummaryDedupBackfill, If as hasUnsyncedSharedMemoryChanges, tc as hashText, uy as importMemories, Bi as inferMemoryRole, sx as ingest, ux as ingestMain, Ti as initDatabase, zT as initTestSchema, BT as insertTestSession, u as inviteLink, dT as isConnectivityError, Pi as isDerivedFactRow, Hn as isEmbeddingDisabled, Jy as isInternalMemoryTool, gm as isLowSignalObservation, Of as isNewerClock, nS as isScopedSyncCapability, By as isSensitiveFieldName, ki as isSummaryLikeMemory, Ob as isTrivialRequest, jv as judgeDistillCandidate, Nv as judgeDistillCandidates, Pv as judgeDistillReport, es as kindBonus, LT as listAuthorizedScopesForPeer, Bd as listCachedScopesForDevice, Zt as listConfiguredOpenCodeProviders, o_ as listCoordinatorGroupPreferences, ld as listCoordinatorJoinRequests, ad as listCoordinatorReciprocalApprovals, Jt as listCustomProviders, py as listExtractionBenchmarkProfiles, Ep as listInboundScopeRejections, fi as listMaintenanceJobs, Qt as listObserverProviderOptions, RT as listPerPeerScopeSyncState, TC as listProjectScopeCandidates, EC as listProjectScopeInventory, _C as listProjectScopeSettingsMappings, DT as listRetentionScopeIds, gC as listSharingDomainSettingsScopes, tv as loadDistillVectorFeatures, Ff as loadMemorySnapshotPageForPeer, Th as loadObserverConfig, At as loadOpenCodeConfig, Pm as loadOpenCodeOAuthCache, pw as loadPeerAddresses, dr as loadPrivateKey, cr as loadPrivateKeyKeychain, ur as loadPublicKey, Pf as loadReplicationOpsForPeer, Nf as loadReplicationOpsSince, Vn as loadSqliteVec, ed as lookupCoordinatorPeers, Wr as mapClaudeHookPayload, ri as mapCodexHookPayload, uv as markDistillClustersDocumented, kw as mdnsAddressesForPeer, xw as mdnsEnabled, Au as mergeAddresses, Kv as mergeSummaryMetadata, Pn as migrateLegacyDbPath, kp as migrateLegacyImportKeys, iS as negotiateSyncCapability, Ib as normalizeAdapterEvents, Du as normalizeAddress, bo as normalizeConcept, Fb as normalizeEventsForSessionContext, hm as normalizeObservation, Fr as normalizeProjectLabel, Db as normalizeRequestText, rS as normalizeSyncCapability, Ud as normalizeTag, Yy as normalizeToolName, Av as parseJudgeVerdict, Kb as parseObserverResponse, ko as parsePositiveMemoryId, Oo as parseStrictInteger, NT as parseSyncScopeRequest, pT as peerBackoffSeconds, $f as peerCanSyncPrivateOpByPersonalScopeGrant, Xf as personalScopeGrantStatusForPeer, Bf as planReplicationOpsAgePrune, So as populateMemoryRefs, zm as probeAvailableCredentials, tb as projectAdapterToolEvent, Ui as projectBasename, Ki as projectClause, Gi as projectColumnClause, $_ as projectContextFactFeatures, qi as projectMatchesFilter, Lf as pruneReplicationOps, Rf as pruneReplicationOpsUntilCaughtUp, cm as rawEventsGate, Ni as readArtifactClass, Gm as readAuthFile, Vt as readCodememConfigFile, Ht as readCodememConfigFileAtPath, Xu as readCoordinatorSyncConfig, ty as readImportPayload, Lt as readWorkspaceCodememConfigFile, DC as reassignProjectScopeInventoryProject, $o as recencyScore, dp as reconcileStalePeerReceivedRows, Af as recordAccessCleanupOp, Er as recordNonce, gw as recordPeerSuccess, kf as recordReplicationOp, hw as recordSyncAttempt, jm as redactText, zd as refreshConfiguredScopeMembershipCache, Rd as refreshScopeMembershipCache, rd as refreshStoredCoordinatorPeerAddresses, $u as registerCoordinatorPresence, wp as rejectInboundScopeFailures, Qm as renderObserverHeaders, Ev as renderUnifiedDiff, Mx as replayBatchExtraction, Nx as replayBatchExtractionWithTierRouting, Qf as replicationOpRequiresPersonalScopeAuthorization, Fu as requestJson, Us as rerankResults, en as resolveBuiltInProviderDefaultModel, $t as resolveBuiltInProviderFromModel, tn as resolveBuiltInProviderModel, zt as resolveCodememConfigPath, dn as resolveCustomProviderDefaultModel, nn as resolveCustomProviderFromModel, fn as resolveCustomProviderModel, An as resolveDbPath, Rr as resolveHookProject, lr as resolveKeyPaths, Fm as resolveOAuthProvider, rn as resolvePlaceholder, Yi as resolveProject, Xi as resolveProjectRoot, Ba as resolveProjectScope, om as retryRawEventFailures, Um as runAuthCommand, f_ as runDedupKeyBackfillPass, BC as runRefBackfillPass, Yx as runScopeBackfillPass, $C as runSessionContextBackfillPass, cw as runSummaryDedupBackfillPass, CT as runSyncDaemon, sT as runSyncPass, ES as runVectorMigrationPass, Uy as sanitizePayload, xv as sanitizeRuleLine, Ky as sanitizeToolOutput, Sg as scanSecretsRetroactive, H as schema, PT as scopeAuthorizationFailureReason, o as scopeMembershipEpochStatus, rv as scoreDistillCluster, iv as scoreDistillClusters, Ws as search, VT as seedMixedScopeFixture, fw as selectDialAddresses, Q_ as selectDistillCorpus, Ic as semanticSearch, lc as serializeFloat32, vw as setPeerLocalActorClaim, _w as setPeerProjectFilter, Cf as setReplicationCursor, vT as setSyncDaemonError, _T as setSyncDaemonOk, bT as setSyncDaemonPhase, mf as setSyncResetState, mT as shouldSkipOfflinePeer, Sr as signRequest, pi as startMaintenanceJob, sr as storePrivateKeyKeychain, Pc as storeVectors, Ot as stripJsonComments, Ly as stripPrivate, Vy as stripPrivateObj, kt as stripTrailingCommas, Tp as summarizeInboundScopeRejections, ST as syncDaemonTick, oT as syncOnce, aT as syncPassPreflight, Jf as syncProjectAllowedByFilters, IT as syncScopeResetRequiredPayload, Yf as syncVisibilityAllowed, X as tableExists, Js as timeline, Z as toJson, $n as toJsonNullable, mi as updateMaintenanceJob, mw as updatePeerAddresses, Od as upsertCachedScopeMemberships, s_ as upsertCoordinatorGroupPreference, OC as upsertProjectScopeSettingsMapping, Ei as vacuumDatabase, vr as validateExistingKeypair, Cr as verifySignature, Ut as writeCodememConfigFile, Wt as writeWorkspaceCodememConfigFile };
|
|
20666
20666
|
|