yee88 0.2.0__py3-none-any.whl → 0.4.0__py3-none-any.whl

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 (106) hide show
  1. yee88/__init__.py +1 -0
  2. {takopi → yee88}/cli/__init__.py +2 -2
  3. {takopi → yee88}/cli/config.py +3 -3
  4. {takopi → yee88}/cli/doctor.py +3 -3
  5. {takopi → yee88}/cli/onboarding_cmd.py +2 -2
  6. {takopi → yee88}/cli/plugins.py +1 -1
  7. {takopi → yee88}/cli/run.py +1 -1
  8. {takopi → yee88}/cli/topic.py +5 -5
  9. {takopi → yee88}/config.py +2 -2
  10. {takopi → yee88}/logging.py +1 -1
  11. {takopi → yee88}/plugins.py +3 -3
  12. {takopi → yee88}/runners/run_options.py +1 -1
  13. {takopi → yee88}/settings.py +1 -1
  14. {takopi → yee88}/telegram/api_schemas.py +1 -1
  15. {takopi → yee88}/telegram/bridge.py +1 -1
  16. {takopi → yee88}/telegram/files.py +1 -1
  17. {takopi → yee88}/telegram/onboarding.py +5 -5
  18. {takopi → yee88}/utils/paths.py +1 -1
  19. {yee88-0.2.0.dist-info → yee88-0.4.0.dist-info}/METADATA +6 -6
  20. yee88-0.4.0.dist-info/RECORD +103 -0
  21. yee88-0.4.0.dist-info/entry_points.txt +11 -0
  22. takopi/__init__.py +0 -1
  23. yee88-0.2.0.dist-info/RECORD +0 -103
  24. yee88-0.2.0.dist-info/entry_points.txt +0 -11
  25. {takopi → yee88}/api.py +0 -0
  26. {takopi → yee88}/backends.py +0 -0
  27. {takopi → yee88}/backends_helpers.py +0 -0
  28. {takopi → yee88}/cli/init.py +0 -0
  29. {takopi → yee88}/commands.py +0 -0
  30. {takopi → yee88}/config_migrations.py +0 -0
  31. {takopi → yee88}/config_watch.py +0 -0
  32. {takopi → yee88}/context.py +0 -0
  33. {takopi → yee88}/directives.py +0 -0
  34. {takopi → yee88}/engines.py +0 -0
  35. {takopi → yee88}/events.py +0 -0
  36. {takopi → yee88}/ids.py +0 -0
  37. {takopi → yee88}/lockfile.py +0 -0
  38. {takopi → yee88}/markdown.py +0 -0
  39. {takopi → yee88}/model.py +0 -0
  40. {takopi → yee88}/presenter.py +0 -0
  41. {takopi → yee88}/progress.py +0 -0
  42. {takopi → yee88}/router.py +0 -0
  43. {takopi → yee88}/runner.py +0 -0
  44. {takopi → yee88}/runner_bridge.py +0 -0
  45. {takopi → yee88}/runners/__init__.py +0 -0
  46. {takopi → yee88}/runners/claude.py +0 -0
  47. {takopi → yee88}/runners/codex.py +0 -0
  48. {takopi → yee88}/runners/mock.py +0 -0
  49. {takopi → yee88}/runners/opencode.py +0 -0
  50. {takopi → yee88}/runners/pi.py +0 -0
  51. {takopi → yee88}/runners/tool_actions.py +0 -0
  52. {takopi → yee88}/runtime_loader.py +0 -0
  53. {takopi → yee88}/scheduler.py +0 -0
  54. {takopi → yee88}/schemas/__init__.py +0 -0
  55. {takopi → yee88}/schemas/claude.py +0 -0
  56. {takopi → yee88}/schemas/codex.py +0 -0
  57. {takopi → yee88}/schemas/opencode.py +0 -0
  58. {takopi → yee88}/schemas/pi.py +0 -0
  59. {takopi → yee88}/telegram/__init__.py +0 -0
  60. {takopi → yee88}/telegram/api_models.py +0 -0
  61. {takopi → yee88}/telegram/backend.py +0 -0
  62. {takopi → yee88}/telegram/chat_prefs.py +0 -0
  63. {takopi → yee88}/telegram/chat_sessions.py +0 -0
  64. {takopi → yee88}/telegram/client.py +0 -0
  65. {takopi → yee88}/telegram/client_api.py +0 -0
  66. {takopi → yee88}/telegram/commands/__init__.py +0 -0
  67. {takopi → yee88}/telegram/commands/agent.py +0 -0
  68. {takopi → yee88}/telegram/commands/cancel.py +0 -0
  69. {takopi → yee88}/telegram/commands/dispatch.py +0 -0
  70. {takopi → yee88}/telegram/commands/executor.py +0 -0
  71. {takopi → yee88}/telegram/commands/file_transfer.py +0 -0
  72. {takopi → yee88}/telegram/commands/handlers.py +0 -0
  73. {takopi → yee88}/telegram/commands/media.py +0 -0
  74. {takopi → yee88}/telegram/commands/menu.py +0 -0
  75. {takopi → yee88}/telegram/commands/model.py +0 -0
  76. {takopi → yee88}/telegram/commands/overrides.py +0 -0
  77. {takopi → yee88}/telegram/commands/parse.py +0 -0
  78. {takopi → yee88}/telegram/commands/plan.py +0 -0
  79. {takopi → yee88}/telegram/commands/reasoning.py +0 -0
  80. {takopi → yee88}/telegram/commands/reply.py +0 -0
  81. {takopi → yee88}/telegram/commands/topics.py +0 -0
  82. {takopi → yee88}/telegram/commands/trigger.py +0 -0
  83. {takopi → yee88}/telegram/context.py +0 -0
  84. {takopi → yee88}/telegram/engine_defaults.py +0 -0
  85. {takopi → yee88}/telegram/engine_overrides.py +0 -0
  86. {takopi → yee88}/telegram/loop.py +0 -0
  87. {takopi → yee88}/telegram/outbox.py +0 -0
  88. {takopi → yee88}/telegram/parsing.py +0 -0
  89. {takopi → yee88}/telegram/render.py +0 -0
  90. {takopi → yee88}/telegram/state_store.py +0 -0
  91. {takopi → yee88}/telegram/topic_state.py +0 -0
  92. {takopi → yee88}/telegram/topics.py +0 -0
  93. {takopi → yee88}/telegram/trigger_mode.py +0 -0
  94. {takopi → yee88}/telegram/types.py +0 -0
  95. {takopi → yee88}/telegram/voice.py +0 -0
  96. {takopi → yee88}/transport.py +0 -0
  97. {takopi → yee88}/transport_runtime.py +0 -0
  98. {takopi → yee88}/transports.py +0 -0
  99. {takopi → yee88}/utils/__init__.py +0 -0
  100. {takopi → yee88}/utils/git.py +0 -0
  101. {takopi → yee88}/utils/json_state.py +0 -0
  102. {takopi → yee88}/utils/streams.py +0 -0
  103. {takopi → yee88}/utils/subprocess.py +0 -0
  104. {takopi → yee88}/worktrees.py +0 -0
  105. {yee88-0.2.0.dist-info → yee88-0.4.0.dist-info}/WHEEL +0 -0
  106. {yee88-0.2.0.dist-info → yee88-0.4.0.dist-info}/licenses/LICENSE +0 -0
yee88/__init__.py ADDED
@@ -0,0 +1 @@
1
+ __version__ = "0.4.0"
@@ -194,9 +194,9 @@ def create_app() -> typer.Typer:
194
194
  app = typer.Typer(
195
195
  add_completion=False,
196
196
  invoke_without_command=True,
197
- help="Telegram bridge for coding agents. Docs: https://takopi.dev/",
197
+ help="Telegram bridge for coding agents. Docs: https://yee88.dev/",
198
198
  )
199
- config_app = typer.Typer(help="Read and modify takopi config.")
199
+ config_app = typer.Typer(help="Read and modify yee88 config.")
200
200
  config_app.command(name="path")(config_path_cmd)
201
201
  config_app.command(name="list")(config_list)
202
202
  config_app.command(name="get")(config_get)
@@ -39,9 +39,9 @@ def _config_path_display(path: Path) -> str:
39
39
  def _fail_missing_config(path: Path) -> None:
40
40
  display = _config_path_display(path)
41
41
  if path.exists():
42
- typer.echo(f"error: invalid takopi config at {display}", err=True)
42
+ typer.echo(f"error: invalid yee88 config at {display}", err=True)
43
43
  else:
44
- typer.echo(f"error: missing takopi config at {display}", err=True)
44
+ typer.echo(f"error: missing yee88 config at {display}", err=True)
45
45
 
46
46
 
47
47
  def _resolve_config_path_override(value: Path | None) -> Path:
@@ -51,7 +51,7 @@ def _resolve_config_path_override(value: Path | None) -> Path:
51
51
 
52
52
 
53
53
  def _resolve_home_config_path() -> Path:
54
- cli_module = sys.modules.get("takopi.cli")
54
+ cli_module = sys.modules.get("yee88.cli")
55
55
  if cli_module is not None:
56
56
  override = getattr(cli_module, "HOME_CONFIG_PATH", None)
57
57
  if override is not None:
@@ -126,7 +126,7 @@ def run_doctor(
126
126
 
127
127
  if settings.transport != "telegram":
128
128
  typer.echo(
129
- "error: takopi doctor currently supports the telegram transport only.",
129
+ "error: yee88 doctor currently supports the telegram transport only.",
130
130
  err=True,
131
131
  )
132
132
  raise typer.Exit(code=1)
@@ -159,7 +159,7 @@ def run_doctor(
159
159
  *file_checks(settings),
160
160
  *voice_checks(settings),
161
161
  ]
162
- typer.echo("takopi doctor")
162
+ typer.echo("yee88 doctor")
163
163
  for check in checks:
164
164
  typer.echo(check.render())
165
165
  if any(check.status == "error" for check in checks):
@@ -167,7 +167,7 @@ def run_doctor(
167
167
 
168
168
 
169
169
  def _resolve_cli_attr(name: str) -> object | None:
170
- cli_module = sys.modules.get("takopi.cli")
170
+ cli_module = sys.modules.get("yee88.cli")
171
171
  if cli_module is None:
172
172
  return None
173
173
  return getattr(cli_module, name, None)
@@ -91,7 +91,7 @@ def chat_id(
91
91
  break
92
92
  if entry is None:
93
93
  raise ConfigError(
94
- f"Unknown project {project!r}; run `takopi init {project}` first."
94
+ f"Unknown project {project!r}; run `yee88 init {project}` first."
95
95
  )
96
96
  if not isinstance(entry, dict):
97
97
  raise ConfigError(
@@ -120,7 +120,7 @@ def onboarding_paths() -> None:
120
120
 
121
121
 
122
122
  def _resolve_cli_attr(name: str) -> object | None:
123
- cli_module = sys.modules.get("takopi.cli")
123
+ cli_module = sys.modules.get("yee88.cli")
124
124
  if cli_module is None:
125
125
  return None
126
126
  return getattr(cli_module, name, None)
@@ -190,7 +190,7 @@ def plugins_cmd(
190
190
 
191
191
 
192
192
  def _resolve_cli_attr(name: str) -> object | None:
193
- cli_module = sys.modules.get("takopi.cli")
193
+ cli_module = sys.modules.get("yee88.cli")
194
194
  if cli_module is None:
195
195
  return None
196
196
  return getattr(cli_module, name, None)
@@ -413,7 +413,7 @@ def make_engine_cmd(engine_id: str) -> Callable[..., None]:
413
413
 
414
414
 
415
415
  def _resolve_cli_attr(name: str) -> object | None:
416
- cli_module = sys.modules.get("takopi.cli")
416
+ cli_module = sys.modules.get("yee88.cli")
417
417
  if cli_module is None:
418
418
  return None
419
419
  return getattr(cli_module, name, None)
@@ -261,7 +261,7 @@ def run_topic(
261
261
  if conflict_reason:
262
262
  typer.echo(
263
263
  f"error: project alias '{project}' conflicts with {conflict_reason}.\n"
264
- f"please specify a different alias: takopi topic init <alias>",
264
+ f"please specify a different alias: yee88 topic init <alias>",
265
265
  err=True,
266
266
  )
267
267
  raise typer.Exit(code=1)
@@ -283,7 +283,7 @@ def run_topic(
283
283
  if project_key not in settings.projects and project not in settings.projects:
284
284
  typer.echo(
285
285
  f"error: project '{project}' not found in config. "
286
- f"Run `takopi init {project}` first.",
286
+ f"Run `yee88 init {project}` first.",
287
287
  err=True,
288
288
  )
289
289
  raise typer.Exit(code=1)
@@ -301,7 +301,7 @@ def run_topic(
301
301
  if not tg.topics.enabled:
302
302
  typer.echo(
303
303
  "error: topics not enabled. "
304
- "Run `takopi config set transports.telegram.topics.enabled true`",
304
+ "Run `yee88 config set transports.telegram.topics.enabled true`",
305
305
  err=True,
306
306
  )
307
307
  raise typer.Exit(code=1)
@@ -330,8 +330,8 @@ def run_topic(
330
330
 
331
331
  typer.echo(f"deleted topic binding for: {project}{' @' + branch if branch else ''}")
332
332
  typer.echo("")
333
- typer.echo("done! the topic has been unbound from takopi.")
334
- typer.echo("note: the telegram topic still exists but won't be managed by takopi.")
333
+ typer.echo("done! the topic has been unbound from yee88.")
334
+ typer.echo("note: the telegram topic still exists but won't be managed by yee88.")
335
335
  else:
336
336
  # Create mode
337
337
  typer.echo("creating topic...")
@@ -79,7 +79,7 @@ class ProjectConfig:
79
79
  class ProjectsConfig:
80
80
  projects: dict[str, ProjectConfig]
81
81
  default_project: str | None = None
82
- global_system_prompt: str | None = None
82
+ system_prompt: str | None = None
83
83
  chat_map: dict[int, str] = field(default_factory=dict)
84
84
 
85
85
  def resolve(self, alias: str | None) -> ProjectConfig | None:
@@ -93,7 +93,7 @@ class ProjectsConfig:
93
93
  project = self.resolve(alias)
94
94
  if project is not None and project.system_prompt is not None:
95
95
  return project.system_prompt
96
- return self.global_system_prompt
96
+ return self.system_prompt
97
97
 
98
98
  def project_for_chat(self, chat_id: int | None) -> str | None:
99
99
  if chat_id is None:
@@ -28,7 +28,7 @@ _MIN_LEVEL = _LEVELS["info"]
28
28
  _PIPELINE_LEVEL_NAME = "debug"
29
29
 
30
30
  _suppress_below: ContextVar[int | None] = ContextVar(
31
- "takopi_suppress_below", default=None
31
+ "yee88_suppress_below", default=None
32
32
  )
33
33
  _log_file_handle: TextIO | None = None
34
34
 
@@ -9,9 +9,9 @@ from collections.abc import Callable
9
9
 
10
10
  from .ids import ID_PATTERN, is_valid_id
11
11
 
12
- ENGINE_GROUP = "takopi.engine_backends"
13
- TRANSPORT_GROUP = "takopi.transport_backends"
14
- COMMAND_GROUP = "takopi.command_backends"
12
+ ENGINE_GROUP = "yee88.engine_backends"
13
+ TRANSPORT_GROUP = "yee88.transport_backends"
14
+ COMMAND_GROUP = "yee88.command_backends"
15
15
 
16
16
  _CANONICAL_NAME_RE = re.compile(r"[-_.]+")
17
17
 
@@ -14,7 +14,7 @@ class EngineRunOptions:
14
14
 
15
15
 
16
16
  _RUN_OPTIONS: ContextVar[EngineRunOptions | None] = ContextVar(
17
- "takopi.engine_run_options", default=None
17
+ "yee88.engine_run_options", default=None
18
18
  )
19
19
 
20
20
 
@@ -288,7 +288,7 @@ class TakopiSettings(BaseSettings):
288
288
  return ProjectsConfig(
289
289
  projects=projects,
290
290
  default_project=default_project,
291
- global_system_prompt=self.system_prompt,
291
+ system_prompt=self.system_prompt,
292
292
  chat_map=chat_map,
293
293
  )
294
294
 
@@ -1,4 +1,4 @@
1
- """Msgspec models for Telegram Bot API payloads (subset used by takopi).
1
+ """Msgspec models for Telegram Bot API payloads (subset used by yee88).
2
2
 
3
3
  Derived from telegram-api.html in the repository.
4
4
  """
@@ -36,7 +36,7 @@ __all__ = [
36
36
  "send_with_resume",
37
37
  ]
38
38
 
39
- CANCEL_CALLBACK_DATA = "takopi:cancel"
39
+ CANCEL_CALLBACK_DATA = "yee88:cancel"
40
40
  CANCEL_MARKUP = {
41
41
  "inline_keyboard": [[{"text": "cancel", "callback_data": CANCEL_CALLBACK_DATA}]]
42
42
  }
@@ -137,7 +137,7 @@ def default_upload_path(
137
137
  def write_bytes_atomic(path: Path, payload: bytes) -> None:
138
138
  path.parent.mkdir(parents=True, exist_ok=True)
139
139
  with tempfile.NamedTemporaryFile(
140
- mode="wb", delete=False, dir=path.parent, prefix=".takopi-upload-"
140
+ mode="wb", delete=False, dir=path.parent, prefix=".yee88-upload-"
141
141
  ) as handle:
142
142
  handle.write(payload)
143
143
  temp_name = handle.name
@@ -346,7 +346,7 @@ def render_topics_group_instructions(bot_ref: str) -> Text:
346
346
 
347
347
  def render_generic_capture_prompt(bot_ref: str) -> Text:
348
348
  return Text.assemble(
349
- f" send /start to {bot_ref} in the chat you want takopi to use "
349
+ f" send /start to {bot_ref} in the chat you want yee88 to use "
350
350
  "(private chat or group)"
351
351
  )
352
352
 
@@ -377,7 +377,7 @@ def render_backup_failed_warning(error: OSError) -> Text:
377
377
 
378
378
  def render_persona_tabs() -> Table:
379
379
  active_label = "happian @memory-box"
380
- inactive_label = "takopi @master"
380
+ inactive_label = "yee88 @master"
381
381
  grid = Table.grid(padding=(0, 2))
382
382
  grid.pad_edge = False
383
383
  grid.add_column()
@@ -505,7 +505,7 @@ async def prompt_persona(ui: UI) -> Persona | None:
505
505
  return cast(
506
506
  Persona,
507
507
  await ui.select(
508
- "how will you use takopi?",
508
+ "how will you use yee88?",
509
509
  choices=[
510
510
  ("assistant (ongoing chat, /new to reset)", "assistant"),
511
511
  ("workspace (projects + branches, i'll set those up)", "workspace"),
@@ -877,7 +877,7 @@ async def step_capture_chat(ui: UI, svc: Services, state: OnboardingState) -> No
877
877
 
878
878
 
879
879
  async def step_default_engine(ui: UI, svc: Services, state: OnboardingState) -> None:
880
- ui.print("takopi runs these engines on your computer. switch anytime with /agent.")
880
+ ui.print("yee88 runs these engines on your computer. switch anytime with /agent.")
881
881
  rows = svc.list_engines()
882
882
  render_engine_table(ui, rows)
883
883
  installed_ids = [engine_id for engine_id, installed, _ in rows if installed]
@@ -926,7 +926,7 @@ async def step_save_config(ui: UI, svc: Services, state: OnboardingState) -> Non
926
926
  merged = merge_config(raw_config, patch, config_path=state.config_path)
927
927
  svc.write_config(state.config_path, merged)
928
928
  ui.print("")
929
- ui.print(Text("✓ setup complete. starting takopi...", style="green"))
929
+ ui.print(Text("✓ setup complete. starting yee88...", style="green"))
930
930
 
931
931
 
932
932
  def always_true(_state: OnboardingState) -> bool:
@@ -5,7 +5,7 @@ from contextvars import ContextVar, Token
5
5
  from pathlib import Path
6
6
 
7
7
 
8
- _run_base_dir: ContextVar[Path | None] = ContextVar("takopi_run_base_dir", default=None)
8
+ _run_base_dir: ContextVar[Path | None] = ContextVar("yee88_run_base_dir", default=None)
9
9
 
10
10
 
11
11
  def get_run_base_dir() -> Path | None:
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yee88
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Telegram bridge for Codex, Claude Code, and other agent CLIs.
5
- Project-URL: Homepage, https://github.com/banteg/takopi
6
- Project-URL: Documentation, https://takopi.dev/
7
- Project-URL: Repository, https://github.com/banteg/takopi
8
- Project-URL: Issues, https://github.com/banteg/takopi/issues
5
+ Project-URL: Homepage, https://github.com/banteg/yee88
6
+ Project-URL: Documentation, https://yee88.dev/
7
+ Project-URL: Repository, https://github.com/banteg/yee88
8
+ Project-URL: Issues, https://github.com/banteg/yee88/issues
9
9
  Author: yee.wang
10
10
  License: MIT License
11
11
 
@@ -106,7 +106,7 @@ inspect or update settings with `yee88 config list`, `yee88 config get`, and `ye
106
106
 
107
107
  ## plugins
108
108
 
109
- takopi supports entrypoint-based plugins for engines, transports, and commands.
109
+ yee88 supports entrypoint-based plugins for engines, transports, and commands.
110
110
 
111
111
  see [`docs/how-to/write-a-plugin.md`](docs/how-to/write-a-plugin.md) and [`docs/reference/plugin-api.md`](docs/reference/plugin-api.md).
112
112
 
@@ -0,0 +1,103 @@
1
+ yee88/__init__.py,sha256=42STGor_9nKYXumfeV5tiyD_M8VdcddX7CEexmibPBk,22
2
+ yee88/api.py,sha256=SnUoG0xnjgaSyqM9retJS9wd3axBEI8MCOkrBNz4w8A,2876
3
+ yee88/backends.py,sha256=80ScxPEse-BxVfK0zA6bAaorp2GpTpCWsgX3TTqmumI,543
4
+ yee88/backends_helpers.py,sha256=d84XilyOzVVCq5akygVbH85JbapjTaSUZKeGcAml15I,368
5
+ yee88/commands.py,sha256=DplCjFC8QQM2MYoblZS8HI6OngKmQLO2emxCi8NIOtY,3298
6
+ yee88/config.py,sha256=YACUptmkn8TbUvg16kerNT7Pj78fukm99QzFwGA0X2s,4293
7
+ yee88/config_migrations.py,sha256=H-wJZz0HcwmTcNCulXj1nFR8I2ilUQtjo5upMRLrPWc,3501
8
+ yee88/config_watch.py,sha256=GBu4KrlgKACWalPFK-7C3Qo1v1BiOYOiOtK5OUOqz9c,4390
9
+ yee88/context.py,sha256=2GXdWY8KpWbEARJNo34unLN8nqGBtiE72Z_mjwrJTUM,187
10
+ yee88/directives.py,sha256=28XG1f7yQs8GAgvPoy5g0pTe_aaVQeWFSD4-S5mC5oo,4583
11
+ yee88/engines.py,sha256=uXtGie-XkQDB1LROTjPlCkYKbCu7XgyTr0yGn837gN4,1646
12
+ yee88/events.py,sha256=1yo6l5D4xFreyPoU1d4L1ckaplPizxpFeJJevP8JDtk,4225
13
+ yee88/ids.py,sha256=uU2A7x61Xn3_Pj-YgY5-EruoOtwDSXOp2D-XduTqAEo,534
14
+ yee88/lockfile.py,sha256=xCSsxVQMqnCN2RWFkkDOVg1qm5D-Sb4AMKr6FdP0kbY,4162
15
+ yee88/logging.py,sha256=aqoIClE5_vlASKXsc9FjrmsmBy-7jLYOomHheSWSadA,8227
16
+ yee88/markdown.py,sha256=YCx81lxBp_fchx3SN4Z-0sXNQGY1YjZJWz0m_xtk-uM,9068
17
+ yee88/model.py,sha256=G8Aj2nyTM6_vmHh12vEXlvhNJHR1ZBpsPBKw-DboDbs,1695
18
+ yee88/plugins.py,sha256=XdvttyxL2j65l88P4yhGTzaoBbkCka2-PPTgJXuH0i4,9150
19
+ yee88/presenter.py,sha256=rhPIytd2ANoe5S6kGeVvTzsPSQzO5AEMBXK3F_zJEx4,513
20
+ yee88/progress.py,sha256=n5HmZcw1dSuDfhrOXiZhLXdGMMSJNFpfZ4NR_2-wOL4,3155
21
+ yee88/router.py,sha256=pZkFI7OsUYeqjS2JmnL4gmHSPbEg8WF7_mQhzV45BCE,3853
22
+ yee88/runner.py,sha256=kaXscM6WBXa8TwDhzEyf2am4V95hKXTzfb78F1l3how,21476
23
+ yee88/runner_bridge.py,sha256=XGHpxTvmmk-DfiZCgNztXwboJ5m5z9GPKRK_8MxbRWA,19103
24
+ yee88/runtime_loader.py,sha256=i-4IeZqcez1VxWqfXsgmHhakK5g53ecye1kW46Uzc_c,6242
25
+ yee88/scheduler.py,sha256=ss_90rpZ3aKh_GutKhMwn8KWpg5QykkE2r6-ltimExk,5590
26
+ yee88/settings.py,sha256=Lmjb2FP42e8dX2lOzJ1PJCQXSM7i7gBeuHG-KT9LTXE,12057
27
+ yee88/transport.py,sha256=hzVJJO4mk1CaXgzsxSiMDqYA8xKMPD-SSQKhHDnwlzE,1330
28
+ yee88/transport_runtime.py,sha256=QdPEJ2rCeCsbRD_-77ZG74sRa2ws3WLAXptPPgssw2c,10260
29
+ yee88/transports.py,sha256=8igVsWgvx4d743SE98LyNuKYaci0-X61IqNiO4U-_Ck,2013
30
+ yee88/worktrees.py,sha256=KDaT1S0-kQH5v0FmiWgG51jgGviyATVEgfoqRrLmh7Y,3907
31
+ yee88/cli/__init__.py,sha256=eAvBJmePEJtwAKqRZy_Hx5O7illthdScMw6ooaFmhgI,6440
32
+ yee88/cli/config.py,sha256=gTDdaTkJGGooeGECgcOXkpF-Y7Kmqi_Iyum0ghQzazg,9560
33
+ yee88/cli/doctor.py,sha256=FPLXk-ZSPZiHtWrncEqborcz4e1dhb3S5sUVcOw-n60,6000
34
+ yee88/cli/init.py,sha256=y1Z08rh9t4RPhzsgJRtopgd6UvjEPYi9Wfv_t2KlrxI,3761
35
+ yee88/cli/onboarding_cmd.py,sha256=VNJl9cpfz-Bo7LNpGUIH-VtbOFdATTn1ry21cwtyQQM,4170
36
+ yee88/cli/plugins.py,sha256=Kxr1FgLIjN6c8il83_cfE9nix0jYPUvI6KXtol3Swow,6319
37
+ yee88/cli/run.py,sha256=IlhQjdp83hmXau9RDaZ9MdguIOgDK_SIFVP0dMfQ_AY,13918
38
+ yee88/cli/topic.py,sha256=6j_o0wpHMfkyeyj9wcjU5T5PVXw_cOM0qM5fsMDRiIw,11019
39
+ yee88/runners/__init__.py,sha256=McKaMqLXT9dJlgiEwKf6biD0Ns66Fk7SrxwtcP0ZgzI,30
40
+ yee88/runners/claude.py,sha256=-s88BOSTWxp4e7r6QJgUV3RJsEMEfSjk0Z9OmnZQB9Y,15296
41
+ yee88/runners/codex.py,sha256=oen08lhgaDdEn52x-GDcL7m4Hiaq9Vz3kb4b8KXh3yc,20956
42
+ yee88/runners/mock.py,sha256=zKnxNeFkTWyWXe35wUkm3hwf1vOi_eTXfNwIxaVWIjw,6617
43
+ yee88/runners/opencode.py,sha256=QEvpSSRtP5Uv-kzEp6D-85o2II886IHsEV-Us8vqsjA,15018
44
+ yee88/runners/pi.py,sha256=PH8xw_IBZzDo1KQ6AUQEPhqVRo-kb5I2OVKJrIuJq0w,16087
45
+ yee88/runners/run_options.py,sha256=83uU9k5vnBSbk4wT4tIDkzOwMa3qL0KK-tdQgomre6w,915
46
+ yee88/runners/tool_actions.py,sha256=Gcfhl_-W8WtIKwM2d1pkTVnVuk3h310eSD-_DvKfqOc,2732
47
+ yee88/schemas/__init__.py,sha256=gt6BRlYw2nKYLKkidkTDdK9RTmDEEDDpSi3LIr_pccw,46
48
+ yee88/schemas/claude.py,sha256=HqOik1O4u3WcMb4RN2cTVJw6VRYn3EaYj8h5Sevs1XY,5702
49
+ yee88/schemas/codex.py,sha256=bgIsh35LuaqoOYdTl6BWR-mn-mvh3ouwes_Jn9JMVXg,3412
50
+ yee88/schemas/opencode.py,sha256=ODhnKXTzxZ_8qaQ7AYqXB7J-XoAjQnXbGMBVTUEM2qY,1175
51
+ yee88/schemas/pi.py,sha256=e5ETawxk8jrdJbEbeBI_pWQKeCFiBBZLEF-Wo5Fx0XY,2680
52
+ yee88/telegram/__init__.py,sha256=hX_Wvu920dNLTDrKlj0fsZFSewOo-_otN26O1UNPNA4,452
53
+ yee88/telegram/api_models.py,sha256=d3H4o2sRZuFgfZfxF1Y1z_xzzCoOy3bKhMeKggYCW3w,538
54
+ yee88/telegram/api_schemas.py,sha256=Xj-i68GFSb9Uk6GhU2Etp-gYhAat9DKYcvQN9av1NPQ,3823
55
+ yee88/telegram/backend.py,sha256=k2NVdxiWlKjKOGJ7X7WarpJpKVZRIcREOub7HN4jsho,5782
56
+ yee88/telegram/bridge.py,sha256=EI2vR1UQyUiYq-T5yb1bXWDC2hPb33GmycnXUDsHaLQ,13539
57
+ yee88/telegram/chat_prefs.py,sha256=tH7dXIehYHdemN_JOMhB7VuuFOiSBcjKz3FXpfW77Dk,8441
58
+ yee88/telegram/chat_sessions.py,sha256=7uL5bGX5BaQbQYTEpkWZVMh6HIImWdR_pPbqf6C4k0A,3736
59
+ yee88/telegram/client.py,sha256=GqNSCGA0cICaOC3E-qX7E4pcUTeP8edXS9HILYZNZgU,12800
60
+ yee88/telegram/client_api.py,sha256=6gDCrPQSBHHBhyiXX9cCwvNuQChsFXh0z8BvCgGD8Es,17692
61
+ yee88/telegram/context.py,sha256=owY5ZH2iLlS6kGS0DLPLAwNXkbcn34EfdzpWa9eSVR0,4485
62
+ yee88/telegram/engine_defaults.py,sha256=n6ROkTmP_s-H5AhPz_OdT62oZf0QtZJyFEDjp5gfub4,2594
63
+ yee88/telegram/engine_overrides.py,sha256=kv2j102VP-Bqzbutd5ApBkjW3LmVwvCYixsFewVXVeY,3122
64
+ yee88/telegram/files.py,sha256=Cvmw6r_ocSb3jLzJLGVbzr46m8cRU159majJ1-A5lvg,5053
65
+ yee88/telegram/loop.py,sha256=ytp6HGoHxnXOhA-yg2bid0wZmxM15cnAK-RSx4qy_Ak,66912
66
+ yee88/telegram/onboarding.py,sha256=yf_Q7LtodmHW1FbGFLqyYhvigEeoro9MQvAZf39aY_E,34213
67
+ yee88/telegram/outbox.py,sha256=OcoRyQ7zmQCXR8ZXEMK2f_7-UMRVRAbBgmJGS1u_lcU,5939
68
+ yee88/telegram/parsing.py,sha256=5PvIPns1NnKryt3XNxPCp4BpWX1gI8kjKi4VxcQ0W-Q,7429
69
+ yee88/telegram/render.py,sha256=tZuKUeiG6qBb7S_6Y90MBSuSFRUHVbcL-mXWC1r9fHA,6017
70
+ yee88/telegram/state_store.py,sha256=bo0D0dJvdPIbzb7DE7HELbwnJ-VEw2p8AsPgj99an14,2551
71
+ yee88/telegram/topic_state.py,sha256=I8V6p50Hf7fGMKLCVNMXkqaKI46Yvm80Q5l4LaVHrYU,11444
72
+ yee88/telegram/topics.py,sha256=TP9cFkWvbZXaJ_41Gmwv2vO6vmim1c_RkrtMkQ9RiQE,8129
73
+ yee88/telegram/trigger_mode.py,sha256=4wFjNbEANn45lpctO9uBhjXTGh1K3LOUKWlBEA6m6Ps,2070
74
+ yee88/telegram/types.py,sha256=7MQCR0_k1zDtF32h3VoRxPZM7IZe9K6nCcy0xW11Lus,1540
75
+ yee88/telegram/voice.py,sha256=6GsqgVXSCUCXupyS6S235BXXwTp4gSLmYQLBYWAGdfc,3312
76
+ yee88/telegram/commands/__init__.py,sha256=lZfpONZyhgsc7L02B6ZS4TWyhTShWNxIyfRQLIKvvo8,285
77
+ yee88/telegram/commands/agent.py,sha256=Dtd8N0f3JyJM3gTb1CxQ8-0ez_ZR4DtrnrO9SpKBBQU,6969
78
+ yee88/telegram/commands/cancel.py,sha256=jE93VjztNETlmAgb7FJX0sLR3O-NHy5XcraUbK13TLs,3884
79
+ yee88/telegram/commands/dispatch.py,sha256=zcvX0V6_klf5jXqJlBwAK25e83WC9z3-KoRcDbeWre0,3572
80
+ yee88/telegram/commands/executor.py,sha256=um6KbvneUpzGu8GPujtYJB-tFvWmN95xvLHVN-Vuj8g,14678
81
+ yee88/telegram/commands/file_transfer.py,sha256=yfopf_If9f7Scaz4dlUsfcrVvg24QmQdajLzemaENy0,17697
82
+ yee88/telegram/commands/handlers.py,sha256=2zySjRW49e1iv2QJW6xq2m9j0t-uz9_FCJZpE7NhIDA,1834
83
+ yee88/telegram/commands/media.py,sha256=drSKTf_BbyvXOGhS9UKwey_243Ic5XissoaxCykpd-c,5045
84
+ yee88/telegram/commands/menu.py,sha256=AvEgKQUZageBx7TwV2-V_IGhT7AC0qUTtAHjcLIweNY,4466
85
+ yee88/telegram/commands/model.py,sha256=P6rW_N6Q8OtjU3md3QUMKIgLskLuvJXB2uKoyk5vtfk,7512
86
+ yee88/telegram/commands/overrides.py,sha256=lLlIuCWkKwbS5WlQOOr_Ftv_EvfHR9DhjBpWaf6FBng,4853
87
+ yee88/telegram/commands/parse.py,sha256=0QVW1TVdBWadLbpJ9lRY3s7W4Cm62JJa9jfAaFHQmXU,887
88
+ yee88/telegram/commands/plan.py,sha256=iKsaRBS-qIfvAaxik5ZEA_VzAnFwx7aEED8sKXNq1wE,487
89
+ yee88/telegram/commands/reasoning.py,sha256=UFEJOHm4d0v2jFh5HC3oQGS41NYKbmJHRTaAmu_LiGo,8188
90
+ yee88/telegram/commands/reply.py,sha256=a3zkNjKzn3qZXEZFXuflX-tdhQKQyhYDqZskMy1nS3o,580
91
+ yee88/telegram/commands/topics.py,sha256=A_a6XcA2xXzw9aOpS4_OIEp5XWMGwMZfHBXni3XRg6g,10799
92
+ yee88/telegram/commands/trigger.py,sha256=RgB4V7NoFdfDLk83xl3BPTsIIVr5A2zCNstR_5B_mEw,5201
93
+ yee88/utils/__init__.py,sha256=cV9_7v07Y6XkrUju0lHdO1ia0-Q57NqyFVMaFCg--do,34
94
+ yee88/utils/git.py,sha256=SVKcPNl2mUrv-cVHZQ5b8QXWKi33e_Jc4_vfCLwagkg,2413
95
+ yee88/utils/json_state.py,sha256=cnSvGbB9zj90GdYSyigId1M0nEx54T3A3CqqhkAm9kQ,524
96
+ yee88/utils/paths.py,sha256=_Tp-LyFLeyGD0P0agRudLuT1NR_XTIpryxk3OYDJAGQ,1318
97
+ yee88/utils/streams.py,sha256=TQezA-A5VCNksLOtwsJplfr8vm1xPTXoGxvik8G2NPI,1121
98
+ yee88/utils/subprocess.py,sha256=2if6IxTZVSB1kDa8SXw3igj3E-zhKB8P4z5MVe-odzY,2169
99
+ yee88-0.4.0.dist-info/METADATA,sha256=zAoT-GnNrLa7xPXJyCTdZLCgAbebErg-jg8q-mTj0so,4309
100
+ yee88-0.4.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
101
+ yee88-0.4.0.dist-info/entry_points.txt,sha256=P4MVZ_sZfrHaARVMImNJjoGamP8VDukARWMKfDh20V8,282
102
+ yee88-0.4.0.dist-info/licenses/LICENSE,sha256=poyQ59wnbmL3Ox3TiiephfHvUpLvJl0DwLFFgqBDdHY,1063
103
+ yee88-0.4.0.dist-info/RECORD,,
@@ -0,0 +1,11 @@
1
+ [console_scripts]
2
+ yee88 = yee88.cli:main
3
+
4
+ [yee88.engine_backends]
5
+ claude = yee88.runners.claude:BACKEND
6
+ codex = yee88.runners.codex:BACKEND
7
+ opencode = yee88.runners.opencode:BACKEND
8
+ pi = yee88.runners.pi:BACKEND
9
+
10
+ [yee88.transport_backends]
11
+ telegram = yee88.telegram.backend:BACKEND
takopi/__init__.py DELETED
@@ -1 +0,0 @@
1
- __version__ = "0.21.4"
@@ -1,103 +0,0 @@
1
- takopi/__init__.py,sha256=GyaC3hhx285KqPcqukJ07gRSFkuES5T27aUtAwvYYRw,23
2
- takopi/api.py,sha256=SnUoG0xnjgaSyqM9retJS9wd3axBEI8MCOkrBNz4w8A,2876
3
- takopi/backends.py,sha256=80ScxPEse-BxVfK0zA6bAaorp2GpTpCWsgX3TTqmumI,543
4
- takopi/backends_helpers.py,sha256=d84XilyOzVVCq5akygVbH85JbapjTaSUZKeGcAml15I,368
5
- takopi/commands.py,sha256=DplCjFC8QQM2MYoblZS8HI6OngKmQLO2emxCi8NIOtY,3298
6
- takopi/config.py,sha256=FqABa_fsTbI4-7rr82c89OhHMNlLYsUbr1mflD4yTXc,4307
7
- takopi/config_migrations.py,sha256=H-wJZz0HcwmTcNCulXj1nFR8I2ilUQtjo5upMRLrPWc,3501
8
- takopi/config_watch.py,sha256=GBu4KrlgKACWalPFK-7C3Qo1v1BiOYOiOtK5OUOqz9c,4390
9
- takopi/context.py,sha256=2GXdWY8KpWbEARJNo34unLN8nqGBtiE72Z_mjwrJTUM,187
10
- takopi/directives.py,sha256=28XG1f7yQs8GAgvPoy5g0pTe_aaVQeWFSD4-S5mC5oo,4583
11
- takopi/engines.py,sha256=uXtGie-XkQDB1LROTjPlCkYKbCu7XgyTr0yGn837gN4,1646
12
- takopi/events.py,sha256=1yo6l5D4xFreyPoU1d4L1ckaplPizxpFeJJevP8JDtk,4225
13
- takopi/ids.py,sha256=uU2A7x61Xn3_Pj-YgY5-EruoOtwDSXOp2D-XduTqAEo,534
14
- takopi/lockfile.py,sha256=xCSsxVQMqnCN2RWFkkDOVg1qm5D-Sb4AMKr6FdP0kbY,4162
15
- takopi/logging.py,sha256=BylZsaQB4pNhAteTdsXGAl0_PUoY8JQ4EFCvOhuB5bo,8228
16
- takopi/markdown.py,sha256=YCx81lxBp_fchx3SN4Z-0sXNQGY1YjZJWz0m_xtk-uM,9068
17
- takopi/model.py,sha256=G8Aj2nyTM6_vmHh12vEXlvhNJHR1ZBpsPBKw-DboDbs,1695
18
- takopi/plugins.py,sha256=ItXdxlbZaikJOmJiUWQLFS9OvfMvJVy4seOnwDoaMHE,9153
19
- takopi/presenter.py,sha256=rhPIytd2ANoe5S6kGeVvTzsPSQzO5AEMBXK3F_zJEx4,513
20
- takopi/progress.py,sha256=n5HmZcw1dSuDfhrOXiZhLXdGMMSJNFpfZ4NR_2-wOL4,3155
21
- takopi/router.py,sha256=pZkFI7OsUYeqjS2JmnL4gmHSPbEg8WF7_mQhzV45BCE,3853
22
- takopi/runner.py,sha256=kaXscM6WBXa8TwDhzEyf2am4V95hKXTzfb78F1l3how,21476
23
- takopi/runner_bridge.py,sha256=XGHpxTvmmk-DfiZCgNztXwboJ5m5z9GPKRK_8MxbRWA,19103
24
- takopi/runtime_loader.py,sha256=i-4IeZqcez1VxWqfXsgmHhakK5g53ecye1kW46Uzc_c,6242
25
- takopi/scheduler.py,sha256=ss_90rpZ3aKh_GutKhMwn8KWpg5QykkE2r6-ltimExk,5590
26
- takopi/settings.py,sha256=uZcTzWdbX65Iy7wgLBPHiE_MalpSamWlOfqBJNE6De8,12064
27
- takopi/transport.py,sha256=hzVJJO4mk1CaXgzsxSiMDqYA8xKMPD-SSQKhHDnwlzE,1330
28
- takopi/transport_runtime.py,sha256=QdPEJ2rCeCsbRD_-77ZG74sRa2ws3WLAXptPPgssw2c,10260
29
- takopi/transports.py,sha256=8igVsWgvx4d743SE98LyNuKYaci0-X61IqNiO4U-_Ck,2013
30
- takopi/worktrees.py,sha256=KDaT1S0-kQH5v0FmiWgG51jgGviyATVEgfoqRrLmh7Y,3907
31
- takopi/cli/__init__.py,sha256=YcM5Z_Lavn5PbuDH_0y6o6Fc-0Ca56SBec6XwKhJPLI,6442
32
- takopi/cli/config.py,sha256=KXofbUieznU4OU0O-Atq57lPrigGmwmWGq27DC0EwmA,9563
33
- takopi/cli/doctor.py,sha256=YrSRvHvI2Vew5Dw33u3D2OX4SIKKhQ1EDyj5cYQfcPc,6003
34
- takopi/cli/init.py,sha256=y1Z08rh9t4RPhzsgJRtopgd6UvjEPYi9Wfv_t2KlrxI,3761
35
- takopi/cli/onboarding_cmd.py,sha256=nj7mj2UuYQ5j0ZryFvb8INn4wDcOQU2_tWGZCcOnSKc,4172
36
- takopi/cli/plugins.py,sha256=Kadu-EeX_UO9hSgloo7od6gmCzJqpyBX4E0skf_qFno,6320
37
- takopi/cli/run.py,sha256=2KtKoOT1LGEKlizr8MYaCgxX5j3O7jlfPPgnU1UkSCE,13919
38
- takopi/cli/topic.py,sha256=VPDCc_P5dFUa-FkvwZK7jEVVR9jHqVXmFwzYemTRMW8,11024
39
- takopi/runners/__init__.py,sha256=McKaMqLXT9dJlgiEwKf6biD0Ns66Fk7SrxwtcP0ZgzI,30
40
- takopi/runners/claude.py,sha256=-s88BOSTWxp4e7r6QJgUV3RJsEMEfSjk0Z9OmnZQB9Y,15296
41
- takopi/runners/codex.py,sha256=oen08lhgaDdEn52x-GDcL7m4Hiaq9Vz3kb4b8KXh3yc,20956
42
- takopi/runners/mock.py,sha256=zKnxNeFkTWyWXe35wUkm3hwf1vOi_eTXfNwIxaVWIjw,6617
43
- takopi/runners/opencode.py,sha256=QEvpSSRtP5Uv-kzEp6D-85o2II886IHsEV-Us8vqsjA,15018
44
- takopi/runners/pi.py,sha256=PH8xw_IBZzDo1KQ6AUQEPhqVRo-kb5I2OVKJrIuJq0w,16087
45
- takopi/runners/run_options.py,sha256=ZjEm2baRwyJjRGCDTegnNreBA1qzQkaBJO_q4ZSnSw8,916
46
- takopi/runners/tool_actions.py,sha256=Gcfhl_-W8WtIKwM2d1pkTVnVuk3h310eSD-_DvKfqOc,2732
47
- takopi/schemas/__init__.py,sha256=gt6BRlYw2nKYLKkidkTDdK9RTmDEEDDpSi3LIr_pccw,46
48
- takopi/schemas/claude.py,sha256=HqOik1O4u3WcMb4RN2cTVJw6VRYn3EaYj8h5Sevs1XY,5702
49
- takopi/schemas/codex.py,sha256=bgIsh35LuaqoOYdTl6BWR-mn-mvh3ouwes_Jn9JMVXg,3412
50
- takopi/schemas/opencode.py,sha256=ODhnKXTzxZ_8qaQ7AYqXB7J-XoAjQnXbGMBVTUEM2qY,1175
51
- takopi/schemas/pi.py,sha256=e5ETawxk8jrdJbEbeBI_pWQKeCFiBBZLEF-Wo5Fx0XY,2680
52
- takopi/telegram/__init__.py,sha256=hX_Wvu920dNLTDrKlj0fsZFSewOo-_otN26O1UNPNA4,452
53
- takopi/telegram/api_models.py,sha256=d3H4o2sRZuFgfZfxF1Y1z_xzzCoOy3bKhMeKggYCW3w,538
54
- takopi/telegram/api_schemas.py,sha256=Hvym_s2iPEaJmviCRGrLy8JarbcOburdE7aga2XnV_8,3824
55
- takopi/telegram/backend.py,sha256=k2NVdxiWlKjKOGJ7X7WarpJpKVZRIcREOub7HN4jsho,5782
56
- takopi/telegram/bridge.py,sha256=UQ4tqYdH8yEme5K6VGTOPaMKo2zIP0hAyJ6ev80izAA,13540
57
- takopi/telegram/chat_prefs.py,sha256=tH7dXIehYHdemN_JOMhB7VuuFOiSBcjKz3FXpfW77Dk,8441
58
- takopi/telegram/chat_sessions.py,sha256=7uL5bGX5BaQbQYTEpkWZVMh6HIImWdR_pPbqf6C4k0A,3736
59
- takopi/telegram/client.py,sha256=GqNSCGA0cICaOC3E-qX7E4pcUTeP8edXS9HILYZNZgU,12800
60
- takopi/telegram/client_api.py,sha256=6gDCrPQSBHHBhyiXX9cCwvNuQChsFXh0z8BvCgGD8Es,17692
61
- takopi/telegram/context.py,sha256=owY5ZH2iLlS6kGS0DLPLAwNXkbcn34EfdzpWa9eSVR0,4485
62
- takopi/telegram/engine_defaults.py,sha256=n6ROkTmP_s-H5AhPz_OdT62oZf0QtZJyFEDjp5gfub4,2594
63
- takopi/telegram/engine_overrides.py,sha256=kv2j102VP-Bqzbutd5ApBkjW3LmVwvCYixsFewVXVeY,3122
64
- takopi/telegram/files.py,sha256=Rc_wYdKHDC4hawL7pSuKznPbLiNnhPP4Lp0uGNGESv0,5054
65
- takopi/telegram/loop.py,sha256=ytp6HGoHxnXOhA-yg2bid0wZmxM15cnAK-RSx4qy_Ak,66912
66
- takopi/telegram/onboarding.py,sha256=YdrjSwZoebwgDPmuEhpqW0dmXJSHbStBOZxnmrVSMzc,34218
67
- takopi/telegram/outbox.py,sha256=OcoRyQ7zmQCXR8ZXEMK2f_7-UMRVRAbBgmJGS1u_lcU,5939
68
- takopi/telegram/parsing.py,sha256=5PvIPns1NnKryt3XNxPCp4BpWX1gI8kjKi4VxcQ0W-Q,7429
69
- takopi/telegram/render.py,sha256=tZuKUeiG6qBb7S_6Y90MBSuSFRUHVbcL-mXWC1r9fHA,6017
70
- takopi/telegram/state_store.py,sha256=bo0D0dJvdPIbzb7DE7HELbwnJ-VEw2p8AsPgj99an14,2551
71
- takopi/telegram/topic_state.py,sha256=I8V6p50Hf7fGMKLCVNMXkqaKI46Yvm80Q5l4LaVHrYU,11444
72
- takopi/telegram/topics.py,sha256=TP9cFkWvbZXaJ_41Gmwv2vO6vmim1c_RkrtMkQ9RiQE,8129
73
- takopi/telegram/trigger_mode.py,sha256=4wFjNbEANn45lpctO9uBhjXTGh1K3LOUKWlBEA6m6Ps,2070
74
- takopi/telegram/types.py,sha256=7MQCR0_k1zDtF32h3VoRxPZM7IZe9K6nCcy0xW11Lus,1540
75
- takopi/telegram/voice.py,sha256=6GsqgVXSCUCXupyS6S235BXXwTp4gSLmYQLBYWAGdfc,3312
76
- takopi/telegram/commands/__init__.py,sha256=lZfpONZyhgsc7L02B6ZS4TWyhTShWNxIyfRQLIKvvo8,285
77
- takopi/telegram/commands/agent.py,sha256=Dtd8N0f3JyJM3gTb1CxQ8-0ez_ZR4DtrnrO9SpKBBQU,6969
78
- takopi/telegram/commands/cancel.py,sha256=jE93VjztNETlmAgb7FJX0sLR3O-NHy5XcraUbK13TLs,3884
79
- takopi/telegram/commands/dispatch.py,sha256=zcvX0V6_klf5jXqJlBwAK25e83WC9z3-KoRcDbeWre0,3572
80
- takopi/telegram/commands/executor.py,sha256=um6KbvneUpzGu8GPujtYJB-tFvWmN95xvLHVN-Vuj8g,14678
81
- takopi/telegram/commands/file_transfer.py,sha256=yfopf_If9f7Scaz4dlUsfcrVvg24QmQdajLzemaENy0,17697
82
- takopi/telegram/commands/handlers.py,sha256=2zySjRW49e1iv2QJW6xq2m9j0t-uz9_FCJZpE7NhIDA,1834
83
- takopi/telegram/commands/media.py,sha256=drSKTf_BbyvXOGhS9UKwey_243Ic5XissoaxCykpd-c,5045
84
- takopi/telegram/commands/menu.py,sha256=AvEgKQUZageBx7TwV2-V_IGhT7AC0qUTtAHjcLIweNY,4466
85
- takopi/telegram/commands/model.py,sha256=P6rW_N6Q8OtjU3md3QUMKIgLskLuvJXB2uKoyk5vtfk,7512
86
- takopi/telegram/commands/overrides.py,sha256=lLlIuCWkKwbS5WlQOOr_Ftv_EvfHR9DhjBpWaf6FBng,4853
87
- takopi/telegram/commands/parse.py,sha256=0QVW1TVdBWadLbpJ9lRY3s7W4Cm62JJa9jfAaFHQmXU,887
88
- takopi/telegram/commands/plan.py,sha256=iKsaRBS-qIfvAaxik5ZEA_VzAnFwx7aEED8sKXNq1wE,487
89
- takopi/telegram/commands/reasoning.py,sha256=UFEJOHm4d0v2jFh5HC3oQGS41NYKbmJHRTaAmu_LiGo,8188
90
- takopi/telegram/commands/reply.py,sha256=a3zkNjKzn3qZXEZFXuflX-tdhQKQyhYDqZskMy1nS3o,580
91
- takopi/telegram/commands/topics.py,sha256=A_a6XcA2xXzw9aOpS4_OIEp5XWMGwMZfHBXni3XRg6g,10799
92
- takopi/telegram/commands/trigger.py,sha256=RgB4V7NoFdfDLk83xl3BPTsIIVr5A2zCNstR_5B_mEw,5201
93
- takopi/utils/__init__.py,sha256=cV9_7v07Y6XkrUju0lHdO1ia0-Q57NqyFVMaFCg--do,34
94
- takopi/utils/git.py,sha256=SVKcPNl2mUrv-cVHZQ5b8QXWKi33e_Jc4_vfCLwagkg,2413
95
- takopi/utils/json_state.py,sha256=cnSvGbB9zj90GdYSyigId1M0nEx54T3A3CqqhkAm9kQ,524
96
- takopi/utils/paths.py,sha256=HQkXwRdh7coKyeb3lUpgEsLvmQEYd-f9aw7WpIfdu3Q,1319
97
- takopi/utils/streams.py,sha256=TQezA-A5VCNksLOtwsJplfr8vm1xPTXoGxvik8G2NPI,1121
98
- takopi/utils/subprocess.py,sha256=2if6IxTZVSB1kDa8SXw3igj3E-zhKB8P4z5MVe-odzY,2169
99
- yee88-0.2.0.dist-info/METADATA,sha256=7cGkQZLapN__-7-6Ar3UEAlUVGFd0elwGzEZqGHDYQE,4314
100
- yee88-0.2.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
101
- yee88-0.2.0.dist-info/entry_points.txt,sha256=X7Mgvla-mFDUCT_NqPFbuL_82GqVGIMJV2SRLbViBXA,290
102
- yee88-0.2.0.dist-info/licenses/LICENSE,sha256=poyQ59wnbmL3Ox3TiiephfHvUpLvJl0DwLFFgqBDdHY,1063
103
- yee88-0.2.0.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- [console_scripts]
2
- yee88 = takopi.cli:main
3
-
4
- [takopi.engine_backends]
5
- claude = takopi.runners.claude:BACKEND
6
- codex = takopi.runners.codex:BACKEND
7
- opencode = takopi.runners.opencode:BACKEND
8
- pi = takopi.runners.pi:BACKEND
9
-
10
- [takopi.transport_backends]
11
- telegram = takopi.telegram.backend:BACKEND
{takopi → yee88}/api.py RENAMED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
{takopi → yee88}/ids.py RENAMED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes