synomem 0.7.2 → 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.
- package/CHANGELOG.md +38 -0
- package/README.md +47 -68
- package/dist/backend.d.ts +18 -6
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +55 -41
- package/dist/backend.js.map +1 -1
- package/dist/cli.d.ts +20 -25
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1394 -1281
- package/dist/cli.js.map +1 -1
- package/dist/configure.d.ts +12 -46
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +51 -192
- package/dist/configure.js.map +1 -1
- package/dist/credentials.d.ts +73 -33
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +167 -43
- package/dist/credentials.js.map +1 -1
- package/dist/discover.d.ts +10 -13
- package/dist/discover.d.ts.map +1 -1
- package/dist/discover.js +45 -30
- package/dist/discover.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -0
- package/dist/errors.js.map +1 -1
- package/dist/import.d.ts +3 -0
- package/dist/import.d.ts.map +1 -1
- package/dist/import.js +3 -0
- package/dist/import.js.map +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +18 -7
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +402 -183
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp-server.d.ts +5 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +27 -105
- package/dist/mcp-server.js.map +1 -1
- package/dist/oauth.d.ts +31 -33
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +178 -125
- package/dist/oauth.js.map +1 -1
- package/dist/profiles.d.ts +243 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +465 -0
- package/dist/profiles.js.map +1 -0
- package/dist/project.d.ts +8 -39
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +36 -94
- package/dist/project.js.map +1 -1
- package/dist/remote.d.ts +23 -15
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +54 -49
- package/dist/remote.js.map +1 -1
- package/dist/resolvers.d.ts +47 -0
- package/dist/resolvers.d.ts.map +1 -0
- package/dist/resolvers.js +255 -0
- package/dist/resolvers.js.map +1 -0
- package/dist/service.d.ts +2 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/skill-install.d.ts +4 -6
- package/dist/skill-install.d.ts.map +1 -1
- package/dist/skill-install.js +13 -12
- package/dist/skill-install.js.map +1 -1
- package/dist/types.d.ts +51 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/cli.md +173 -196
- package/docs/mcp.md +69 -65
- package/package.json +1 -1
- package/skills/synomem/SKILL.md +30 -4
- package/skills/synomem/references/examples.md +14 -0
- package/src/backend.ts +66 -64
- package/src/cli.ts +2137 -2163
- package/src/configure.ts +62 -241
- package/src/credentials.ts +208 -84
- package/src/discover.ts +60 -36
- package/src/errors.ts +5 -0
- package/src/import.ts +5 -0
- package/src/index.ts +14 -12
- package/src/mcp/index.ts +473 -194
- package/src/mcp-server.ts +32 -114
- package/src/oauth.ts +229 -130
- package/src/profiles.ts +644 -0
- package/src/project.ts +42 -108
- package/src/remote.ts +69 -58
- package/src/resolvers.ts +299 -0
- package/src/service.ts +2 -0
- package/src/skill-install.ts +17 -18
- package/src/types.ts +46 -0
package/dist/index.d.ts
CHANGED
|
@@ -2,12 +2,14 @@ export { SynomemClient, SynomemCore } from './client.js';
|
|
|
2
2
|
export type { SynomemCoreOptions } from './client.js';
|
|
3
3
|
export type { ProjectionWriter } from './ports/projections.js';
|
|
4
4
|
export type { SynomemRepository } from './ports/repository.js';
|
|
5
|
-
export {
|
|
5
|
+
export { readSynomemConfig } from './backend.js';
|
|
6
6
|
export { RemoteSynomemService, environmentCredentialProvider } from './remote.js';
|
|
7
|
-
export type { SynomemCredentialProvider, RemoteSynomemOptions } from './remote.js';
|
|
8
|
-
export {
|
|
9
|
-
export type {
|
|
10
|
-
export {
|
|
7
|
+
export type { RemoteCredential, RemoteCredentialSource, SynomemCredentialProvider, RemoteSynomemOptions, } from './remote.js';
|
|
8
|
+
export { createLocalResolver, createRemoteResolver, localContextId } from './resolvers.js';
|
|
9
|
+
export type { ContextResolver, ResolvedContext } from './resolvers.js';
|
|
10
|
+
export { OsCredentialStore } from './credentials.js';
|
|
11
|
+
export type { CredentialStore, StoredAccessKey, StoredCredential, StoredOAuthCredential, } from './credentials.js';
|
|
12
|
+
export { loginWithOAuth } from './oauth.js';
|
|
11
13
|
export type { OAuthLoginOptions } from './oauth.js';
|
|
12
14
|
export { createLocalImportBundle, importBundleChecksum, RemoteImportClient, validateImportBundle, } from './import.js';
|
|
13
15
|
export type { ImportBundle, ImportPreview, ImportResult, RemoteImportClientOptions, } from './import.js';
|
|
@@ -16,9 +18,9 @@ export { defaultConfig, resolveHome } from './config.js';
|
|
|
16
18
|
export { cloudApiUrl, SYNOMEM_CLOUD_API_URL } from './cloud.js';
|
|
17
19
|
export { DEFAULT_WORKSPACE, listLocalWorkspaces, localWorkspaceHome, WORKSPACES_DIRECTORY, workspaceNameSchema, } from './workspaces.js';
|
|
18
20
|
export type { LocalWorkspace } from './workspaces.js';
|
|
19
|
-
export { findProjectSelection, PROJECT_CONFIG_FILE, PROJECT_DIRECTORY, projectConfigSchema,
|
|
21
|
+
export { findProjectSelection, PROJECT_CONFIG_FILE, PROJECT_DIRECTORY, projectConfigSchema, writeProjectSelection, } from './project.js';
|
|
20
22
|
export type { ProjectConfig, ProjectSelection } from './project.js';
|
|
21
|
-
export {
|
|
23
|
+
export { describeIdentity, discoverContexts, discoverOrganizations, workspaceChoices, } from './discover.js';
|
|
22
24
|
export type { DiscoveredOrganization, DiscoveredWorkspace, DiscoveryOptions } from './discover.js';
|
|
23
25
|
export { asSynomemError, errorCodes, SynomemError } from './errors.js';
|
|
24
26
|
export { dueInstant, escapeMarkdown, recordsFromEvents, renderMarkdownExport, } from './projections.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAClF,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3F,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EACV,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,yBAAyB,GAC1B,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,mBAAmB,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
export { SynomemClient, SynomemCore } from './client.js';
|
|
2
|
-
export {
|
|
2
|
+
export { readSynomemConfig } from './backend.js';
|
|
3
3
|
export { RemoteSynomemService, environmentCredentialProvider } from './remote.js';
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
4
|
+
export { createLocalResolver, createRemoteResolver, localContextId } from './resolvers.js';
|
|
5
|
+
export { OsCredentialStore } from './credentials.js';
|
|
6
|
+
export { loginWithOAuth } from './oauth.js';
|
|
6
7
|
export { createLocalImportBundle, importBundleChecksum, RemoteImportClient, validateImportBundle, } from './import.js';
|
|
7
8
|
export { defaultConfig, resolveHome } from './config.js';
|
|
8
9
|
export { cloudApiUrl, SYNOMEM_CLOUD_API_URL } from './cloud.js';
|
|
9
10
|
export { DEFAULT_WORKSPACE, listLocalWorkspaces, localWorkspaceHome, WORKSPACES_DIRECTORY, workspaceNameSchema, } from './workspaces.js';
|
|
10
|
-
export { findProjectSelection, PROJECT_CONFIG_FILE, PROJECT_DIRECTORY, projectConfigSchema,
|
|
11
|
-
export {
|
|
11
|
+
export { findProjectSelection, PROJECT_CONFIG_FILE, PROJECT_DIRECTORY, projectConfigSchema, writeProjectSelection, } from './project.js';
|
|
12
|
+
export { describeIdentity, discoverContexts, discoverOrganizations, workspaceChoices, } from './discover.js';
|
|
12
13
|
export { asSynomemError, errorCodes, SynomemError } from './errors.js';
|
|
13
14
|
export { dueInstant, escapeMarkdown, recordsFromEvents, renderMarkdownExport, } from './projections.js';
|
|
14
15
|
export { actorSchema, agentAliasSchema, agentIdSchema, agentLookupSchema, bindRuntimeSchema, changesInputSchema, createAgentSchema, createNoteSchema, createTaskSchema, createTodoSchema, eventSchema, evidenceSchema, giveKudosSchema, giveKudosMcpSchema, itemListInputSchema, kudosTagSchema, kudosTitleSchema, listInputSchema, profileSchema, reviseNoteSchema, sendMemoSchema, updateTaskSchema, updateTodoSchema, updateAgentSchema, topicIdSchema, topicAliasSchema, topicNameSchema, topicLookupSchema, topicProfileSchema, createTopicSchema, updateTopicSchema, topicListInputSchema, } from './schemas.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAIzD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAIzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,aAAa,CAAC;AAOlF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAerB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,cAAc,CAAC"}
|
package/dist/mcp/index.d.ts
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
export interface SynomemMcpOptions
|
|
5
|
-
|
|
2
|
+
import type { ContextResolver } from '../resolvers.js';
|
|
3
|
+
export type { ContextResolver, ResolvedContext } from '../resolvers.js';
|
|
4
|
+
export interface SynomemMcpOptions {
|
|
5
|
+
/** Replaces the default server instructions (appended to, never contradicting, policy). */
|
|
6
|
+
instructions?: string;
|
|
6
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Tools that act in exactly one workspace/actor context. Every one accepts an optional
|
|
10
|
+
* `contextId` through the shared `withContext` helper and resolves its binding per call.
|
|
11
|
+
*/
|
|
12
|
+
export declare const CONTEXT_TOOLS: readonly ["synomem_kudos_give", "synomem_kudos_list", "synomem_kudos_changes", "synomem_kudos_get", "synomem_kudos_acknowledge", "synomem_kudos_revoke", "synomem_kudos_stats", "synomem_agent_create", "synomem_agent_archive", "synomem_agent_restore", "synomem_agent_list", "synomem_post_create", "synomem_post_acknowledge", "synomem_post_roster", "synomem_agent_resolve", "synomem_agent_directory", "synomem_topic_create", "synomem_topic_update", "synomem_topic_list", "synomem_topic_resolve", "synomem_topic_archive", "synomem_topic_restore", "synomem_rebuild", "synomem_doctor", "synomem_list", "synomem_get", "synomem_changes", "synomem_inbox", "synomem_memo_send", "synomem_memo_read", "synomem_memo_archive", "synomem_note_create", "synomem_note_revise", "synomem_note_archive", "synomem_task_create", "synomem_task_update", "synomem_todo_create", "synomem_todo_update", "synomem_todo_complete", "synomem_todo_reopen", "synomem_todo_cancel", "synomem_todo_archive", "synomem_task_accept", "synomem_task_reject", "synomem_task_complete", "synomem_task_reopen", "synomem_task_cancel"];
|
|
13
|
+
/** Tools that describe what a credential may use; they never need a context. */
|
|
14
|
+
export declare const DISCOVERY_TOOLS: readonly ["synomem_context_list", "synomem_context_resolve", "synomem_whoami"];
|
|
15
|
+
/** Resource templates, each scoped to one context (`default` = the fixed context). */
|
|
16
|
+
export declare const CONTEXT_RESOURCES: readonly ["agents", "agent-profile", "agent-wins", "agent-inbox", "event", "item"];
|
|
7
17
|
export interface SynomemMcpRuntime {
|
|
8
18
|
server: McpServer;
|
|
9
|
-
|
|
19
|
+
resolver: ContextResolver;
|
|
10
20
|
close(): Promise<void>;
|
|
11
21
|
}
|
|
12
|
-
export declare function createSynomemMcpServer(options: SynomemMcpOptions,
|
|
13
|
-
|
|
22
|
+
export declare function createSynomemMcpServer(options: SynomemMcpOptions, resolver: ContextResolver): Promise<SynomemMcpRuntime>;
|
|
23
|
+
/** Runs the MCP server over stdio for one resolver (fixed profile or explicit preset). */
|
|
24
|
+
export declare function serveStdio(resolver: ContextResolver, options?: SynomemMcpOptions): Promise<SynomemMcpRuntime>;
|
|
14
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/mcp/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAoB,MAAM,yCAAyC,CAAC;AAwBtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIvD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,gkCAgDhB,CAAC;AAEX,gFAAgF;AAChF,eAAO,MAAM,eAAe,gFAIlB,CAAC;AAEX,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,oFAOpB,CAAC;AA2IX,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAy7C5B;AAED,0FAA0F;AAC1F,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CAK5B"}
|