project-agent-client 0.1.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.
@@ -0,0 +1 @@
1
+ """Client for the Project Backend Service."""
@@ -0,0 +1,170 @@
1
+ """Forward supported Project Agent commands to the backend service."""
2
+
3
+ import argparse
4
+ from importlib import metadata, resources
5
+ import json
6
+ import os
7
+ from pathlib import Path
8
+ import sys
9
+ from urllib.error import HTTPError, URLError
10
+ from urllib.parse import urlsplit
11
+ from urllib.request import HTTPRedirectHandler, Request, build_opener
12
+
13
+
14
+ class _NoRedirect(HTTPRedirectHandler):
15
+ def redirect_request(self, req, fp, code, msg, headers, newurl):
16
+ return None
17
+
18
+
19
+ def _open_url(request, timeout):
20
+ return build_opener(_NoRedirect()).open(request, timeout=timeout)
21
+
22
+
23
+ def _failure(code: str, message: str) -> dict:
24
+ return {"status": "failed", "results": [{"operationId": "request", "action": "transport", "status": "failed", "error": {"code": code, "message": message}}]}
25
+
26
+
27
+ _SCENES = {"task": ("apply", "maintain"), "query": ("apply",),
28
+ "sprint": ("apply", "rollover"), "proposal": ("apply",),
29
+ "quest": ("publish-task", "sync-task", "status", "pending", "reconcile-task-create")}
30
+ _ENDPOINTS = {"task": "tasks", "query": "query", "sprint": "sprints", "proposal": "proposals", "quest": "quest"}
31
+ _BRIDGE = {
32
+ ("attribute", "apply"), ("onboarding", "apply"),
33
+ *(("bootstrap", name) for name in ("apply", "init", "record-loop-result", "checkpoint", "loop-state", "mark")),
34
+ *(("context", name) for name in ("resolve-group", "resolve-binding", "project-binding", "list-relationships", "resolve-user", "search-user", "get-user", "add-project-member", "set-project-owner", "upsert-user-identity")),
35
+ *(("doc-hub", name) for name in ("set-provider", "bind-space", "bind-root", "get-root", "register", "sync-manifest", "remove", "classify", "relate", "read", "propose-updates", "index")),
36
+ *(("doc-hub", "access", name) for name in ("target", "record", "plan")),
37
+ *(("meeting", name) for name in ("save", "parse-time")),
38
+ *(("meeting", "tasks", name) for name in ("pending", "plan", "placement", "run", "resume")),
39
+ *(("report", name) for name in ("apply", "build")),
40
+ *(("monitoring", name) for name in ("plan", "run", "evaluate-followups")),
41
+ ("scheduled", "run"), ("mind", "read"),
42
+ *(("loop", name) for name in ("list", "record-result", "enqueue-bootstrap")),
43
+ }
44
+ _INLINE_JSON_FLAGS = {"--payload-json", "--default-policy-json", "--manifest-json", "--content-json"}
45
+ _TIMEOUT_SECONDS = 200 # The service allows up to 180 seconds; never auto-retry a write.
46
+ _MAX_INLINE_BYTES = 4 * 1024 * 1024
47
+
48
+
49
+ def _command(argv):
50
+ # Longest matching fixed path wins (e.g. meeting tasks plan).
51
+ for command in sorted(_BRIDGE, key=len, reverse=True):
52
+ if tuple(argv[:len(command)]) == command:
53
+ return command, argv[len(command):]
54
+ return None, []
55
+
56
+
57
+ def _inline_file_arguments(arguments):
58
+ """Read legacy JSON-file options on the client, never on the server."""
59
+ output = list(arguments)
60
+ for index, token in enumerate(output):
61
+ option, sep, value = token.partition('=')
62
+ if option not in _INLINE_JSON_FLAGS:
63
+ continue
64
+ target = index if sep else index + 1
65
+ if target >= len(output):
66
+ continue
67
+ raw = value if sep else output[target]
68
+ if raw.lstrip().startswith(('{', '[')):
69
+ continue
70
+ path = Path(raw).expanduser()
71
+ if path.is_file():
72
+ if path.stat().st_size > _MAX_INLINE_BYTES:
73
+ raise ValueError('JSON input file is too large')
74
+ content = path.read_text(encoding='utf-8')
75
+ output[target] = option + '=' + content if sep else content
76
+ return output
77
+
78
+
79
+ def run(argv: list[str], stdin, stdout, environ, open_url=_open_url, stderr=None) -> int:
80
+ stderr = stderr if stderr is not None else sys.stderr
81
+ if argv == ['--version']:
82
+ try:
83
+ version = metadata.version('project-agent-client')
84
+ except metadata.PackageNotFoundError:
85
+ version = '0.1.0'
86
+ stdout.write(version + '\n')
87
+ return 0
88
+ if argv and argv[-1] == '--help':
89
+ command_name = ' '.join(argv[:-1])
90
+ if not command_name:
91
+ names = sorted(set(_SCENES) | {command[0] for command in _BRIDGE})
92
+ stdout.write('Usage: project-agent [OPTIONS] COMMAND [ARGS]...\n\nCommands: ' + ', '.join(names) + '\n')
93
+ return 0
94
+ if command_name == 'quest':
95
+ stdout.write('Usage: project-agent quest COMMAND [ARGS]...\n\nCommands: publish-task, sync-task, status, pending, reconcile-task-create\n')
96
+ return 0
97
+ if command_name in {'quest publish-task', 'quest sync-task', 'quest status', 'quest pending', 'quest reconcile-task-create'}:
98
+ stdout.write('Usage: project-agent ' + command_name + ' --input @-\n')
99
+ return 0
100
+ catalog = json.loads(resources.files('project_agent_client').joinpath('help.json').read_text(encoding='utf-8'))
101
+ if command_name in catalog:
102
+ stdout.write(catalog[command_name])
103
+ return 0
104
+ command, arguments = _command(argv)
105
+ is_bridge = command is not None
106
+ if not is_bridge:
107
+ parser = argparse.ArgumentParser(prog="project-agent")
108
+ commands = parser.add_subparsers(dest="command", required=True)
109
+ for name, supported_actions in _SCENES.items():
110
+ subparser = commands.add_parser(name)
111
+ actions = subparser.add_subparsers(dest="action", required=True)
112
+ for action in supported_actions:
113
+ subcommand = actions.add_parser(action)
114
+ subcommand.add_argument("--input", required=True, choices=["@-"])
115
+ args = parser.parse_args(argv)
116
+
117
+ base_url = environ.get("PROJECT_SERVICE_URL", "").strip().rstrip("/")
118
+ token = environ.get("PROJECT_SERVICE_TOKEN", "").strip()
119
+ try:
120
+ parsed = urlsplit(base_url)
121
+ valid_url = (parsed.scheme == "https" or (parsed.scheme == "http" and parsed.hostname in {"127.0.0.1", "localhost", "::1"})) and bool(parsed.netloc) and not (parsed.username or parsed.password or parsed.query or parsed.fragment)
122
+ except ValueError:
123
+ valid_url = False
124
+ if not valid_url or not token:
125
+ receipt = _failure("service_configuration_error", "Project service URL or token is not configured.")
126
+ else:
127
+ try:
128
+ if is_bridge:
129
+ arguments = _inline_file_arguments(arguments)
130
+ # Most legacy commands do not read stdin. Avoid blocking the caller.
131
+ wants_stdin = any(item == '--input' or item.startswith('--input=') for item in arguments)
132
+ body = {"command": list(command), "arguments": arguments, "stdin": stdin.read() if wants_stdin else ''}
133
+ if environ.get('PROJECT_SERVICE_ACTOR_REF', '').strip():
134
+ body['actorRef'] = json.loads(environ['PROJECT_SERVICE_ACTOR_REF'])
135
+ path = '/v1/cli/execute'
136
+ else:
137
+ body = json.loads(stdin.read())
138
+ path = f"/v1/{_ENDPOINTS[args.command]}/{args.action}"
139
+ payload = json.dumps(body, ensure_ascii=False).encode("utf-8")
140
+ except (ValueError, UnicodeError, OSError):
141
+ receipt = _failure("cli_contract_mismatch", "Input is invalid or a local input file could not be read.")
142
+ else:
143
+ request = Request(base_url + path, data=payload, method="POST", headers={"Authorization": "Bearer " + token, "Content-Type": "application/json", "Accept": "application/json"})
144
+ try:
145
+ with open_url(request, timeout=_TIMEOUT_SECONDS) as response:
146
+ receipt = json.load(response)
147
+ if is_bridge:
148
+ if not isinstance(receipt, dict) or not isinstance(receipt.get('stdout'), str) or not isinstance(receipt.get('stderr'), str) or type(receipt.get('exitCode')) is not int:
149
+ receipt = _failure("invalid_service_response", "Project service returned an invalid command result.")
150
+ else:
151
+ stdout.write(receipt['stdout'])
152
+ stderr.write(receipt['stderr'])
153
+ return receipt['exitCode']
154
+ else:
155
+ valid_statuses = {"ok", "clarification_required", "failed", "partial_success"}
156
+ if not isinstance(receipt, dict) or (args.action != "maintain" and receipt.get("status") not in valid_statuses) or (args.action == "maintain" and not isinstance(receipt.get("status"), str)):
157
+ receipt = _failure("invalid_service_response", "Project service returned an invalid receipt.")
158
+ except HTTPError as exc:
159
+ receipt = _failure("service_request_rejected", f"Project service rejected the request (HTTP {exc.code}).")
160
+ except (URLError, TimeoutError, OSError, ValueError):
161
+ receipt = _failure("service_unavailable", "Project service could not be reached or returned an invalid response; the write outcome may be unknown.")
162
+
163
+ stdout.write(json.dumps(receipt, ensure_ascii=False) + "\n")
164
+ if not is_bridge and args.action == "maintain" and receipt.get("status") != "failed":
165
+ return 0
166
+ return {"ok": 0, "clarification_required": 2}.get(receipt.get("status"), 1)
167
+
168
+
169
+ def main() -> None:
170
+ raise SystemExit(run(sys.argv[1:], sys.stdin, sys.stdout, os.environ))
@@ -0,0 +1,75 @@
1
+ {
2
+ "attribute": " \n Usage: project-agent attribute [OPTIONS] COMMAND [ARGS]... \n \n ๅ‘็Žฐใ€่ฏปๅ–ๅ’Œๆ›ดๆ–ฐๆ‰€ๆœ‰ไธšๅŠกๅฎžไฝ“็š„ๆ‰ฉๅฑ•ๅฑžๆ€งใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ apply โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
3
+ "attribute apply": " \n Usage: project-agent attribute apply [OPTIONS] \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
4
+ "bootstrap": " \n Usage: project-agent bootstrap [OPTIONS] COMMAND [ARGS]... \n \n ๅˆๅง‹ๅŒ–้กน็›ฎใ€Ownerใ€้กน็›ฎ็พค binding ๅ’Œๅ‚ไธŽไบบ็ญ‰ๅŸบ็ก€ๆ•ฐๆฎใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ apply ไธ€ๆฌกๅฎŒๆˆ bootstrap init/ackใ€ledger ๅ†™ๅ…ฅๅ’Œไธ‹ไธ€ โ”‚\nโ”‚ checkpoint ่ฏปๅ–ใ€‚ โ”‚\nโ”‚ init ๅˆ›ๅปบ้กน็›ฎๅŸบ็ก€่ฎฐๅฝ•๏ผŒๅนถๅฏๅŒๆ—ถๅ†™ๅ…ฅ้กน็›ฎ็พค binding โ”‚\nโ”‚ ไธŽๅˆๅง‹ๅ‚ไธŽไบบใ€‚ โ”‚\nโ”‚ record-loop-result ่ฎฐๅฝ•ไธ€ๆฌก bootstrap loop ๅŠจไฝœ็š„ success/failed/skipped โ”‚\nโ”‚ ็ป“ๆžœ๏ผ›ไป…ไฝœๅค็›˜ๅ’Œไธ‹ๆฌก loop-state ่ฏŠๆ–ญ๏ผŒไธๅ†ณๅฎšไธšๅŠกไธ‹ไธ€ๆญฅใ€‚ โ”‚\nโ”‚ checkpoint ่ฏปๅ–ๅนถๆ กๅ‡† bootstrap โ”‚\nโ”‚ ้˜ถๆฎต็Šถๆ€๏ผš่ฟ”ๅ›ž็พค็ป‘ๅฎšใ€ๅฏน้ฝๅญ—ๆฎต็ผบๅฃใ€ๅผ•ๅฏผ/็กฎ่ฎคๆถˆๆฏ่ฝ่ดฆๅ’Œโ€ฆ โ”‚\nโ”‚ loop-state ่ฏปๅ– bootstrap checkpoint๏ผŒ็™ป่ฎฐๆœฌ่ฝฎ loop attempt๏ผŒๅนถ่ฟ” โ€ฆ โ”‚\nโ”‚ stuck/blocker ่ฏŠๆ–ญ๏ผ›ไธ‹ไธ€ๆญฅๅŠจไฝœไป็”ฑ โ”‚\nโ”‚ project-lifecycle-manager skill ๅ‘่ตทใ€‚ โ”‚\nโ”‚ mark ็™ป่ฎฐ bootstrap ้‡Œ็จ‹็ข‘ๆถˆๆฏๅทฒๅ‘ๅ‡บ๏ผˆalignment_intro_sent / โ”‚\nโ”‚ execution_confirmation_sent / kickoff_sent๏ผ‰๏ผŒๅนถ่ฟ”ๅ›žๆœ€ โ€ฆ โ”‚\nโ”‚ checkpointใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
5
+ "bootstrap apply": " \n Usage: project-agent bootstrap apply [OPTIONS] \n \n ไธ€ๆฌกๅฎŒๆˆ bootstrap init/ackใ€ledger ๅ†™ๅ…ฅๅ’Œไธ‹ไธ€ checkpoint ่ฏปๅ–ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
6
+ "bootstrap checkpoint": " \n Usage: project-agent bootstrap checkpoint [OPTIONS] \n \n ่ฏปๅ–ๅนถๆ กๅ‡† bootstrap \n ้˜ถๆฎต็Šถๆ€๏ผš่ฟ”ๅ›ž็พค็ป‘ๅฎšใ€ๅฏน้ฝๅญ—ๆฎต็ผบๅฃใ€ๅผ•ๅฏผ/็กฎ่ฎคๆถˆๆฏ่ฝ่ดฆๅ’Œไธ‹ไธ€ๆญฅๅŠจไฝœใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
7
+ "bootstrap init": " \n Usage: project-agent bootstrap init [OPTIONS] \n \n ๅˆ›ๅปบ้กน็›ฎๅŸบ็ก€่ฎฐๅฝ•๏ผŒๅนถๅฏๅŒๆ—ถๅ†™ๅ…ฅ้กน็›ฎ็พค binding ไธŽๅˆๅง‹ๅ‚ไธŽไบบใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID ๆˆ–ๅค–้ƒจๆ–‡ โ€ฆ โ”‚\nโ”‚ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --project-name <str> ้กน็›ฎๅฑ•็คบๅใ€‚ๅ†™ๅ…ฅ project ๅŸบ็ก€ไฟกๆฏใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --owner-user-id <str> ้กน็›ฎ Owner ็š„ๅ†…้ƒจ userIdใ€‚ [required] โ”‚\nโ”‚ * --primary-goal <str> ้กน็›ฎๅฝ“ๅ‰ไธป็›ฎๆ ‡๏ผŒ็”จไบŽ Project Mind โ”‚\nโ”‚ ๅ’Œๆ–‡ๆกฃๅˆๅง‹ๅ†…ๅฎนใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --target-release-date <str> ็›ฎๆ ‡ๅ‘ๅธƒๆ—ฅๆœŸ๏ผŒๆ ผๅผ YYYY-MM-DDใ€‚ โ”‚\nโ”‚ --timezone <str> ้กน็›ฎ้ป˜่ฎคๆ—ถๅŒบ๏ผŒๆœชๆ˜พๅผไผ ๅ…ฅๆ—ถ้ป˜่ฎค โ”‚\nโ”‚ Asia/Shanghaiใ€‚ โ”‚\nโ”‚ [default: Asia/Shanghai] โ”‚\nโ”‚ --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ --project-group-id <str> ่ฆ็ป‘ๅฎš็š„้กน็›ฎ็พค IDใ€‚ไผ ๅ…ฅๅŽไผšๆŒ‰ channeโ€ฆ โ”‚\nโ”‚ ่ง„ๅˆ™ๅ†™ๅ…ฅ project_group bindingใ€‚ โ”‚\nโ”‚ --participant-user-id <str> ้ขๅค–ๅ‚ไธŽไบบ userIdใ€‚ๅฏ้‡ๅคไผ ๅคšๆฌกใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
8
+ "bootstrap loop-state": " \n Usage: project-agent bootstrap loop-state [OPTIONS] \n \n ่ฏปๅ– bootstrap checkpoint๏ผŒ็™ป่ฎฐๆœฌ่ฝฎ loop attempt๏ผŒๅนถ่ฟ”ๅ›ž stuck/blocker \n ่ฏŠๆ–ญ๏ผ›ไธ‹ไธ€ๆญฅๅŠจไฝœไป็”ฑ project-lifecycle-manager skill ๅ‘่ตทใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ โ”‚\nโ”‚ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --stuck-threshold <int> ๅŒไธ€ nextAction ่ขซ loop-state โ”‚\nโ”‚ ็œ‹ๅˆฐๅคšๅฐ‘ๆฌกๅŽๅˆคๅฎš stuckใ€‚ โ”‚\nโ”‚ [default: 3] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
9
+ "bootstrap mark": " \n Usage: project-agent bootstrap mark [OPTIONS] \n \n ็™ป่ฎฐ bootstrap ้‡Œ็จ‹็ข‘ๆถˆๆฏๅทฒๅ‘ๅ‡บ๏ผˆalignment_intro_sent / \n execution_confirmation_sent / kickoff_sent๏ผ‰๏ผŒๅนถ่ฟ”ๅ›žๆœ€ๆ–ฐ checkpointใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --milestone <str> ๅทฒๅ‘ๅ‡บ็š„้‡Œ็จ‹็ข‘ๆถˆๆฏ๏ผšalignment_intro_sent / โ”‚\nโ”‚ execution_confirmation_sent / kickoff_sentใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
10
+ "bootstrap record-loop-result": " \n Usage: project-agent bootstrap record-loop-result [OPTIONS] \n \n ่ฎฐๅฝ•ไธ€ๆฌก bootstrap loop ๅŠจไฝœ็š„ success/failed/skipped ็ป“ๆžœ๏ผ›ไป…ไฝœๅค็›˜ๅ’Œไธ‹ๆฌก \n loop-state ่ฏŠๆ–ญ๏ผŒไธๅ†ณๅฎšไธšๅŠกไธ‹ไธ€ๆญฅใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ contexโ€ฆ โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --next-action <str> ๆœฌๆฌกๆ‰ง่กŒๅฏนๅบ”็š„ checkpoint nextActionใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --outcome <str> ๆ‰ง่กŒ็ป“ๆžœ๏ผšsuccess / failed / skippedใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --stage <str> ๆ‰ง่กŒ้˜ถๆฎต๏ผŒไพ‹ๅฆ‚ provider_write / fetch_verifโ€ฆ โ”‚\nโ”‚ / markใ€‚ โ”‚\nโ”‚ --reason <str> ๆ‰ง่กŒ็ป“ๆžœ็š„็ฎ€็ŸญๅŽŸๅ› ใ€‚ โ”‚\nโ”‚ --details-json <str> ๅฏ้€‰็ป“ๆž„ๅŒ–็ป†่Š‚ JSONใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
11
+ "context": " \n Usage: project-agent context [OPTIONS] COMMAND [ARGS]... \n \n ๅš็พค็ป‘ๅฎšใ€ๆˆๅ‘˜/่บซไปฝ็ฎก็†ๅ’Œ้กน็›ฎไธŠไธ‹ๆ–‡่งฃๆž๏ผ›้กน็›ฎไบ‹ๅฎž่ฏปๅ–่ตฐ query applyใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ resolve-group ๆŒ‰็พค ID โ”‚\nโ”‚ ๆŸฅ่ฏข็ป‘ๅฎšๅˆฐๅ“ชไธช้กน็›ฎ๏ผŒๅธธ็”จไบŽๆŠŠๅค–้ƒจ็พคไฟกๅท่งฃๆžๆˆๅ†…้ƒจ โ”‚\nโ”‚ projectIdใ€‚ โ”‚\nโ”‚ resolve-binding ๆŒ‰ๆฅๆบไฟกๅท็ป„ๅˆ่งฃๆž binding๏ผŒ้€‚ๅˆๅทฒๆœ‰ chat-id ๆˆ– โ”‚\nโ”‚ subject ็š„ๅœบๆ™ฏใ€‚ โ”‚\nโ”‚ project-binding ๆŒ‰้กน็›ฎ ID ่ฏปๅ–้กน็›ฎ็ป‘ๅฎš็š„็พค/ไผš่ฏไฟกๆฏใ€‚ โ”‚\nโ”‚ list-relationships ่ฏปๅ–้กน็›ฎๅฝ“ๅ‰ๅ…ณ็ณป๏ผ›ไผ  --include-closed โ”‚\nโ”‚ ๅฏๆŸฅ่ฏขๅކๅฒๅ…ณ้—ญๅ…ณ็ณปใ€‚ โ”‚\nโ”‚ resolve-user ๆŠŠๅค–้ƒจ็”จๆˆทๆ ‡่ฏ†่งฃๆžๆˆๅ†…้ƒจ userIdใ€‚ โ”‚\nโ”‚ search-user ๆŒ‰ๆœฌๅœฐๅฑ•็คบๅๆˆ–ๅทฒไฟๅญ˜่บซไปฝ่ต„ๆ–™ๆจก็ณŠๆœ็ดขๅ†…้ƒจ็”จๆˆท๏ผ›ๅชๆŸฅๆœฌ โ€ฆ โ”‚\nโ”‚ get-user ่ฏปๅ–ๅ†…้ƒจ็”จๆˆทๅŠๅ…ถๅค–้ƒจ่บซไปฝๆ˜ ๅฐ„ใ€‚ โ”‚\nโ”‚ add-project-member ๆŠŠไธ€ไธชๅ†…้ƒจ userId ๆทปๅŠ ไธบ้กน็›ฎ active memberใ€‚ โ”‚\nโ”‚ set-project-owner ่ฎพ็ฝฎ้กน็›ฎ Owner๏ผ›ๆ— ็Žฐไปป Owner ๆ—ถๅฏๆŽฅๅ—ๅކๅฒๆๅใ€‚ โ”‚\nโ”‚ upsert-user-identity ๅ†™ๅ…ฅๆˆ–ๆ›ดๆ–ฐๅค–้ƒจ่บซไปฝไธŽๅ†…้ƒจ userId ็š„ๆ˜ ๅฐ„ใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
12
+ "context add-project-member": " \n Usage: project-agent context add-project-member [OPTIONS] \n \n ๆŠŠไธ€ไธชๅ†…้ƒจ userId ๆทปๅŠ ไธบ้กน็›ฎ active memberใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --project-id <str> ็›ฎๆ ‡้กน็›ฎ็š„ canonical projectIdใ€‚ โ”‚\nโ”‚ --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ --providerใ€‚ โ”‚\nโ”‚ --group-id <str> ็พค่Š ID ไฟกๅทใ€‚็”จไบŽ resolve-group ๆˆ– โ”‚\nโ”‚ project_group ่พน็•Œๆ ก้ชŒ๏ผŒไธๆ˜ฏๅ†…้ƒจ projectIdใ€‚ โ”‚\nโ”‚ * --user-id <str> ่ฆๅŠ ๅ…ฅ้กน็›ฎ็š„ๅ†…้ƒจ canonical userIdใ€‚ [required] โ”‚\nโ”‚ --attributes <str> ๆ‰ฉๅฑ•ๅฑžๆ€ง JSON ๆ•ฐ็ป„๏ผ›ๆœช็Ÿฅๅฑžๆ€งไผš่‡ชๅŠจๅˆ›ๅปบใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
13
+ "context get-user": " \n Usage: project-agent context get-user [OPTIONS] \n \n ่ฏปๅ–ๅ†…้ƒจ็”จๆˆทๅŠๅ…ถๅค–้ƒจ่บซไปฝๆ˜ ๅฐ„ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --user-id <str> ๅ†…้ƒจ canonical userIdใ€‚ [required] โ”‚\nโ”‚ --project-id <str> ๆไพ›้กน็›ฎไฝœ็”จๅŸŸๆ—ถ่ฟ”ๅ›ž่ฏฅ้กน็›ฎๅ†…็š„็”จๆˆทๆ‰ฉๅฑ•ๅฑžๆ€งใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
14
+ "context list-relationships": " \n Usage: project-agent context list-relationships [OPTIONS] \n \n ่ฏปๅ–้กน็›ฎๅฝ“ๅ‰ๅ…ณ็ณป๏ผ›ไผ  --include-closed ๅฏๆŸฅ่ฏขๅކๅฒๅ…ณ้—ญๅ…ณ็ณปใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ  โ€ฆ โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --include-closed ๅŒๆ—ถ่ฟ”ๅ›žๅทฒๅ…ณ้—ญ็š„ๅކๅฒๅ…ณ็ณปใ€‚ โ”‚\nโ”‚ --source-kind <str> ่ฐƒ็”จๆฅๆบ็ฑปๅž‹ใ€‚ไผ  project_group โ”‚\nโ”‚ ๆ—ถไผšๅฏ็”จๆฅๆบ็พคไธŽ projectId ็š„่พน็•Œๆ ก้ชŒใ€‚ โ”‚\nโ”‚ --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ --delivery-to <str> ๆฅๆบๆŠ•้€’็›ฎๆ ‡ๆ ‡่ฏ†ใ€‚ๅ’Œ chat-id / subject / โ”‚\nโ”‚ group-id ไธ€่ตทๅ‚ไธŽ project_group binding โ”‚\nโ”‚ ่งฃๆžใ€‚ โ”‚\nโ”‚ --chat-id <str> ่Šๅคฉไผš่ฏ IDใ€‚Feishu ้กน็›ฎ็พคๅธธ่งๅ€ผไธบ oc_xxx โ”‚\nโ”‚ ๆˆ– chat:oc_xxx๏ผ›CLI ไผšๆŒ‰ๆ—ขๆœ‰่ง„ๅˆ™ๅš่ง„่ŒƒๅŒ–ใ€‚ โ”‚\nโ”‚ --subject <str> ๆฅๆบไธปไฝ“ ID๏ผŒไพ‹ๅฆ‚ไผš่ฏไธปไฝ“ๆˆ–็”จๆˆทไธปไฝ“ใ€‚ไป…ๅœจ โ”‚\nโ”‚ binding ่งฃๆž้œ€่ฆ่ฏฅไฟกๅทๆ—ถไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --group-id <str> ็พค่Š ID ไฟกๅทใ€‚็”จไบŽ resolve-group ๆˆ– โ”‚\nโ”‚ project_group ่พน็•Œๆ ก้ชŒ๏ผŒไธๆ˜ฏๅ†…้ƒจ โ”‚\nโ”‚ projectIdใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
15
+ "context project-binding": " \n Usage: project-agent context project-binding [OPTIONS] \n \n ๆŒ‰้กน็›ฎ ID ่ฏปๅ–้กน็›ฎ็ป‘ๅฎš็š„็พค/ไผš่ฏไฟกๆฏใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค Iโ€ฆ โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --source-kind <str> ่ฐƒ็”จๆฅๆบ็ฑปๅž‹ใ€‚ไผ  project_group โ”‚\nโ”‚ ๆ—ถไผšๅฏ็”จๆฅๆบ็พคไธŽ projectId ็š„่พน็•Œๆ ก้ชŒใ€‚ โ”‚\nโ”‚ --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ --providerใ€‚ โ”‚\nโ”‚ --delivery-to <str> ๆฅๆบๆŠ•้€’็›ฎๆ ‡ๆ ‡่ฏ†ใ€‚ๅ’Œ chat-id / subject / โ”‚\nโ”‚ group-id ไธ€่ตทๅ‚ไธŽ project_group binding โ”‚\nโ”‚ ่งฃๆžใ€‚ โ”‚\nโ”‚ --chat-id <str> ่Šๅคฉไผš่ฏ IDใ€‚Feishu ้กน็›ฎ็พคๅธธ่งๅ€ผไธบ oc_xxx ๆˆ– โ”‚\nโ”‚ chat:oc_xxx๏ผ›CLI ไผšๆŒ‰ๆ—ขๆœ‰่ง„ๅˆ™ๅš่ง„่ŒƒๅŒ–ใ€‚ โ”‚\nโ”‚ --subject <str> ๆฅๆบไธปไฝ“ ID๏ผŒไพ‹ๅฆ‚ไผš่ฏไธปไฝ“ๆˆ–็”จๆˆทไธปไฝ“ใ€‚ไป…ๅœจ โ”‚\nโ”‚ binding ่งฃๆž้œ€่ฆ่ฏฅไฟกๅทๆ—ถไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --group-id <str> ็พค่Š ID ไฟกๅทใ€‚็”จไบŽ resolve-group ๆˆ– โ”‚\nโ”‚ project_group ่พน็•Œๆ ก้ชŒ๏ผŒไธๆ˜ฏๅ†…้ƒจ projectIdใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
16
+ "context resolve-binding": " \n Usage: project-agent context resolve-binding [OPTIONS] \n \n ๆŒ‰ๆฅๆบไฟกๅท็ป„ๅˆ่งฃๆž binding๏ผŒ้€‚ๅˆๅทฒๆœ‰ chat-id ๆˆ– subject ็š„ๅœบๆ™ฏใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ --providerใ€‚ โ”‚\nโ”‚ [default: feishu] โ”‚\nโ”‚ --binding-kind <str> binding ็ฑปๅž‹ใ€‚ๅธธ่งๅ€ผไธบ project_groupใ€‚ โ”‚\nโ”‚ --delivery-to <str> ๆฅๆบๆŠ•้€’็›ฎๆ ‡ๆ ‡่ฏ†ใ€‚ๅ’Œ chat-id / subject / โ”‚\nโ”‚ group-id ไธ€่ตทๅ‚ไธŽ project_group binding ่งฃๆžใ€‚ โ”‚\nโ”‚ --chat-id <str> ่Šๅคฉไผš่ฏ IDใ€‚Feishu ้กน็›ฎ็พคๅธธ่งๅ€ผไธบ oc_xxx ๆˆ– โ”‚\nโ”‚ chat:oc_xxx๏ผ›CLI ไผšๆŒ‰ๆ—ขๆœ‰่ง„ๅˆ™ๅš่ง„่ŒƒๅŒ–ใ€‚ โ”‚\nโ”‚ --subject <str> ๆฅๆบไธปไฝ“ ID๏ผŒไพ‹ๅฆ‚ไผš่ฏไธปไฝ“ๆˆ–็”จๆˆทไธปไฝ“ใ€‚ไป…ๅœจ โ”‚\nโ”‚ binding ่งฃๆž้œ€่ฆ่ฏฅไฟกๅทๆ—ถไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --group-id <str> ็พค่Š ID ไฟกๅทใ€‚็”จไบŽ resolve-group ๆˆ– โ”‚\nโ”‚ project_group ่พน็•Œๆ ก้ชŒ๏ผŒไธๆ˜ฏๅ†…้ƒจ projectIdใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
17
+ "context resolve-group": " \n Usage: project-agent context resolve-group [OPTIONS] \n \n ๆŒ‰็พค ID ๆŸฅ่ฏข็ป‘ๅฎšๅˆฐๅ“ชไธช้กน็›ฎ๏ผŒๅธธ็”จไบŽๆŠŠๅค–้ƒจ็พคไฟกๅท่งฃๆžๆˆๅ†…้ƒจ projectIdใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --group-id <str> ๅค–้ƒจ็พค ID๏ผŒไพ‹ๅฆ‚ Feishu ็š„ oc_xxx ๆˆ– โ”‚\nโ”‚ chat:oc_xxxใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ [default: feishu] โ”‚\nโ”‚ --binding-kind <str> binding ็ฑปๅž‹ใ€‚็•™็ฉบๆ—ถๆŒ‰ๅ‘ฝไปค้ป˜่ฎค่งฃๆž๏ผŒๅธธ่งไธบ โ”‚\nโ”‚ project_groupใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
18
+ "context resolve-user": " \n Usage: project-agent context resolve-user [OPTIONS] \n \n ๆŠŠๅค–้ƒจ็”จๆˆทๆ ‡่ฏ†่งฃๆžๆˆๅ†…้ƒจ userIdใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --external-subject-id <str> ๅค–้ƒจๅนณๅฐไธŠ็š„็”จๆˆทไธปไฝ“ ID๏ผŒไพ‹ๅฆ‚ โ”‚\nโ”‚ open_idใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
19
+ "context search-user": " \n Usage: project-agent context search-user [OPTIONS] \n \n ๆŒ‰ๆœฌๅœฐๅฑ•็คบๅๆˆ–ๅทฒไฟๅญ˜่บซไปฝ่ต„ๆ–™ๆจก็ณŠๆœ็ดขๅ†…้ƒจ็”จๆˆท๏ผ›ๅชๆŸฅๆœฌๅœฐๆ•ฐๆฎ๏ผŒๅช่ฏป๏ผŒไธๅ†™ๅบ“ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ --providerใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --query <str> ๆœฌๅœฐๆœ็ดขๆ–‡ๆœฌ๏ผŒไพ‹ๅฆ‚ๅง“ๅใ€ๆ˜ต็งฐใ€ๅˆซๅใ€้‚ฎ็ฎฑๆˆ–ๆ‰‹ๆœบๅทโ€ฆ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
20
+ "context set-project-owner": " \n Usage: project-agent context set-project-owner [OPTIONS] \n \n ่ฎพ็ฝฎ้กน็›ฎ Owner๏ผ›ๆ— ็Žฐไปป Owner ๆ—ถๅฏๆŽฅๅ—ๅކๅฒๆๅใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --user-id <str> ็›ฎๆ ‡ Owner ็š„ canonical userIdใ€‚ [required] โ”‚\nโ”‚ * --actor-user-id <str> ๆ‰ง่กŒ่ฟ™ๆฌกๆญฃๅผๅ†™ๆ“ไฝœ็š„ๅ†…้ƒจ userIdใ€‚้œ€่ฆๅฎก่ฎก โ€ฆ โ”‚\nโ”‚ owner ๆ ก้ชŒ็š„ๅ‘ฝไปคๅบ”ๆ˜พๅผไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --accept ไปฅ่ขซๆๅ็”จๆˆท่บซไปฝๆŽฅๅ—ๆ— ็Žฐไปป Owner โ”‚\nโ”‚ ๆ—ถๅˆ›ๅปบ็š„ๆๅใ€‚ โ”‚\nโ”‚ --source-kind <str> ่ฐƒ็”จๆฅๆบ็ฑปๅž‹ใ€‚ไผ  project_group โ”‚\nโ”‚ ๆ—ถไผšๅฏ็”จๆฅๆบ็พคไธŽ projectId ็š„่พน็•Œๆ ก้ชŒใ€‚ โ”‚\nโ”‚ --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ --delivery-to <str> ๆฅๆบๆŠ•้€’็›ฎๆ ‡ๆ ‡่ฏ†ใ€‚ๅ’Œ chat-id / subject / โ”‚\nโ”‚ group-id ไธ€่ตทๅ‚ไธŽ project_group binding โ”‚\nโ”‚ ่งฃๆžใ€‚ โ”‚\nโ”‚ --chat-id <str> ่Šๅคฉไผš่ฏ IDใ€‚Feishu ้กน็›ฎ็พคๅธธ่งๅ€ผไธบ oc_xxx โ”‚\nโ”‚ ๆˆ– chat:oc_xxx๏ผ›CLI ไผšๆŒ‰ๆ—ขๆœ‰่ง„ๅˆ™ๅš่ง„่ŒƒๅŒ–ใ€‚ โ”‚\nโ”‚ --subject <str> ๆฅๆบไธปไฝ“ ID๏ผŒไพ‹ๅฆ‚ไผš่ฏไธปไฝ“ๆˆ–็”จๆˆทไธปไฝ“ใ€‚ไป…ๅœจ โ”‚\nโ”‚ binding ่งฃๆž้œ€่ฆ่ฏฅไฟกๅทๆ—ถไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --group-id <str> ็พค่Š ID ไฟกๅทใ€‚็”จไบŽ resolve-group ๆˆ– โ”‚\nโ”‚ project_group ่พน็•Œๆ ก้ชŒ๏ผŒไธๆ˜ฏๅ†…้ƒจ โ”‚\nโ”‚ projectIdใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
21
+ "context upsert-user-identity": " \n Usage: project-agent context upsert-user-identity [OPTIONS] \n \n ๅ†™ๅ…ฅๆˆ–ๆ›ดๆ–ฐๅค–้ƒจ่บซไปฝไธŽๅ†…้ƒจ userId ็š„ๆ˜ ๅฐ„ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --external-subject-id <str> ๅค–้ƒจๅนณๅฐไธŠ็š„็”จๆˆทไธปไฝ“ ID๏ผŒไพ‹ๅฆ‚ โ”‚\nโ”‚ open_idใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --display-name <str> ๅฑ•็คบๅใ€‚ [required] โ”‚\nโ”‚ --user-id <str> ๅทฒๆœ‰ๅ†…้ƒจ โ”‚\nโ”‚ userIdใ€‚็•™็ฉบๆ—ถ็”ฑๅŽ็ซฏๅˆ†้…ๆˆ–ๅค็”จใ€‚ โ”‚\nโ”‚ --profile-json <str> ้ขๅค–่บซไปฝ่ต„ๆ–™ JSON ๅญ—็ฌฆไธฒใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
22
+ "doc-hub": " \n Usage: project-agent doc-hub [OPTIONS] COMMAND [ARGS]... \n \n ็ฎก็† Doc Hub ๆ น่Š‚็‚นใ€็ฉบ้—ดๅ’Œๆ–‡ๆกฃๆก็›ฎใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ set-provider ็ป็”จๆˆทไบŒๆฌก็กฎ่ฎคๅŽๅˆ‡ๆขๆ–ฐๆ–‡ๆกฃ้ป˜่ฎคๅนณๅฐ๏ผ›ไธ่ฟ็งปๅทฒๆœ‰ๆ–‡ๆกฃใ€‚ โ”‚\nโ”‚ bind-space ๆŠŠ้กน็›ฎ็ป‘ๅฎšๅˆฐๆŸไธชๅค–้ƒจๆ–‡ๆกฃ็ฉบ้—ดใ€‚ โ”‚\nโ”‚ bind-root ้…็ฝฎๆŸไธช provider ็š„ Doc Hub ๆ น่Š‚็‚นใ€‚ โ”‚\nโ”‚ get-root ่ฏปๅ–ๆŸไธช provider ๅฝ“ๅ‰้…็ฝฎ็š„ Doc Hub ๆ น่Š‚็‚นใ€‚ โ”‚\nโ”‚ register ๆณจๅ†Œไธ€ๆกๅค–้ƒจๆ–‡ๆกฃ่ฎฐๅฝ•ๅˆฐ Doc Hubใ€‚ โ”‚\nโ”‚ remove ไปŽ Doc Hub ็ดขๅผ•็งป้™คๆ–‡ๆกฃๆก็›ฎ๏ผŒไธๅˆ ้™คๅค–้ƒจๆ–‡ไปถใ€‚ โ”‚\nโ”‚ classify ็ป™ Doc Hub ๆก็›ฎ่ฎพ็ฝฎ้€ป่พ‘็ฑปๅž‹ใ€‚ โ”‚\nโ”‚ relate ไธบไธคไธช Doc Hub ๆก็›ฎๅปบ็ซ‹ๅ…ณ็ณปใ€‚ โ”‚\nโ”‚ index ๆž„ๅปบ้กน็›ฎ็š„ Doc Hub ็ดขๅผ•่ง†ๅ›พใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
23
+ "doc-hub access": " \n Usage: project-agent doc-hub access [OPTIONS] COMMAND [ARGS]... \n \n ็ฎก็†้กน็›ฎๆ–‡ๆกฃ็ฉบ้—ด่ฎฟ้—ฎๆŽˆๆƒ่ฎฐๅฝ•ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ target ่งฃๆž้กน็›ฎๆˆๅ‘˜ๅฏนๅบ”็š„ๆ–‡ๆกฃ็ฉบ้—ดๆŽˆๆƒ็›ฎๆ ‡ใ€‚ โ”‚\nโ”‚ record ่ฎฐๅฝ•ไธ€ๆฌก่ฟœ็ซฏๆ–‡ๆกฃ็ฉบ้—ดๆƒ้™ๆฃ€ๆŸฅๆˆ–ๆŽˆๆƒ็ป“ๆžœใ€‚ โ”‚\nโ”‚ plan ๅˆ—ๅ‡บ้œ€่ฆ่ฟ่กŒๆ—ถ้€ไธชๆฃ€ๆŸฅ Drive ๆƒ้™็š„้กน็›ฎๆˆๅ‘˜ใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
24
+ "doc-hub access plan": " \n Usage: project-agent doc-hub access plan [OPTIONS] \n \n ๅˆ—ๅ‡บ้œ€่ฆ่ฟ่กŒๆ—ถ้€ไธชๆฃ€ๆŸฅ Drive ๆƒ้™็š„้กน็›ฎๆˆๅ‘˜ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub ๅฝ’ๅฑž๏ผ›doc-huโ€ฆ โ”‚\nโ”‚ register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ provider๏ผŒๅฆๅˆ™ไธŽ โ”‚\nโ”‚ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผใ€‚ โ”‚\nโ”‚ [default: feishu] โ”‚\nโ”‚ * --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ --providerใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
25
+ "doc-hub access record": " \n Usage: project-agent doc-hub access record [OPTIONS] \n \n ่ฎฐๅฝ•ไธ€ๆฌก่ฟœ็ซฏๆ–‡ๆกฃ็ฉบ้—ดๆƒ้™ๆฃ€ๆŸฅๆˆ–ๆŽˆๆƒ็ป“ๆžœใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID ๆˆ–ๅค–้ƒจๆ–‡ โ€ฆ โ”‚\nโ”‚ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu โ€ฆ โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ โ”‚\nโ”‚ provider๏ผŒๅฆๅˆ™ไธŽ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ชโ€ฆ โ”‚\nโ”‚ [default: feishu] โ”‚\nโ”‚ * --external-space-id <str> provider ไพง็ฉบ้—ดๆˆ–็›ฎๅฝ• IDใ€‚ [required] โ”‚\nโ”‚ * --principal-email <str> Google Drive ๆƒ้™็›ฎๆ ‡ emailใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --role <str> ็›ฎๆ ‡ๆƒ้™่ง’่‰ฒ๏ผŒ้ป˜่ฎค writerใ€‚ โ”‚\nโ”‚ [default: writer] โ”‚\nโ”‚ * --status <str> grantedใ€already_writerใ€upgraded ๆˆ– โ”‚\nโ”‚ failedใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --external-subject-id <str> ๆธ ้“ไพง็”จๆˆทๅ”ฏไธ€ IDใ€‚ [required] โ”‚\nโ”‚ --user-id <str> Project Agent ๅ†…้ƒจ userIdใ€‚ โ”‚\nโ”‚ --principal-type <str> ๆŽˆๆƒไธปไฝ“็ฑปๅž‹๏ผŒ้ป˜่ฎค userใ€‚ โ”‚\nโ”‚ [default: user] โ”‚\nโ”‚ --permission-id <str> provider ไพง permission IDใ€‚ โ”‚\nโ”‚ --last-error <str> ๅคฑ่ดฅๅŽŸๅ› ใ€‚ โ”‚\nโ”‚ --payload-json <str> provider-neutral ๆŽˆๆƒ็ป†่Š‚ JSON โ”‚\nโ”‚ ๆˆ–ๆ–‡ไปถ่ทฏๅพ„ใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
26
+ "doc-hub access target": " \n Usage: project-agent doc-hub access target [OPTIONS] \n \n ่งฃๆž้กน็›ฎๆˆๅ‘˜ๅฏนๅบ”็š„ๆ–‡ๆกฃ็ฉบ้—ดๆŽˆๆƒ็›ฎๆ ‡ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID ๆˆ–ๅค–้ƒจๆ–‡ โ€ฆ โ”‚\nโ”‚ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu โ€ฆ โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ โ”‚\nโ”‚ provider๏ผŒๅฆๅˆ™ไธŽ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ชโ€ฆ โ”‚\nโ”‚ [default: feishu] โ”‚\nโ”‚ * --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --external-subject-id <str> ๆธ ้“ไพง็”จๆˆทๅ”ฏไธ€ IDใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
27
+ "doc-hub bind-root": " \n Usage: project-agent doc-hub bind-root [OPTIONS] \n \n ้…็ฝฎๆŸไธช provider ็š„ Doc Hub ๆ น่Š‚็‚นใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ โ”‚\nโ”‚ provider๏ผŒๅฆๅˆ™ไธŽ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜ โ€ฆ โ”‚\nโ”‚ [default: feishu] โ”‚\nโ”‚ --external-root-id <str> ๅค–้ƒจๅนณๅฐไธŠ็š„ๆ น่Š‚็‚น IDใ€‚ โ”‚\nโ”‚ --url <str> ๆ น่Š‚็‚น้“พๆŽฅใ€‚ โ”‚\nโ”‚ --status <str> ๆ น่Š‚็‚น็ป‘ๅฎš็Šถๆ€๏ผŒ้ป˜่ฎค activeใ€‚ โ”‚\nโ”‚ [default: active] โ”‚\nโ”‚ --default-policy-json <str> ๆ น่Š‚็‚น้ป˜่ฎค็ญ–็•ฅ JSON ๆˆ– JSON ๆ–‡ไปถ่ทฏๅพ„ใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
28
+ "doc-hub bind-space": " \n Usage: project-agent doc-hub bind-space [OPTIONS] \n \n ๆŠŠ้กน็›ฎ็ป‘ๅฎšๅˆฐๆŸไธชๅค–้ƒจๆ–‡ๆกฃ็ฉบ้—ดใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ โ”‚\nโ”‚ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ โ”‚\nโ”‚ provider๏ผŒๅฆๅˆ™ไธŽ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜โ€ฆ โ”‚\nโ”‚ --external-space-id <str> ๅค–้ƒจๅนณๅฐไธŠ็š„็ฉบ้—ด IDใ€‚ โ”‚\nโ”‚ --url <str> ๅค–้ƒจ็ฉบ้—ด้“พๆŽฅใ€‚ โ”‚\nโ”‚ --status <str> ็ป‘ๅฎš็Šถๆ€๏ผŒ้ป˜่ฎค activeใ€‚ โ”‚\nโ”‚ [default: active] โ”‚\nโ”‚ --payload-json <str> provider-neutral ็ฉบ้—ดๆ‰ฉๅฑ•ไฟกๆฏ JSON โ”‚\nโ”‚ ๆˆ–ๆ–‡ไปถ่ทฏๅพ„๏ผŒไพ‹ๅฆ‚ logicalTypeFolders โ”‚\nโ”‚ ๅญ็›ฎๅฝ•ๆ˜ ๅฐ„๏ผ›็œ็•ฅๆ—ถไฟ็•™ๅทฒๆœ‰ payloadใ€‚ โ”‚\nโ”‚ --attributes <str> ๆ‰ฉๅฑ•ๅฑžๆ€ง JSON โ”‚\nโ”‚ ๆ•ฐ็ป„๏ผ›ๆœช็Ÿฅๅฑžๆ€งไผš่‡ชๅŠจๅˆ›ๅปบใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
29
+ "doc-hub classify": " \n Usage: project-agent doc-hub classify [OPTIONS] \n \n ็ป™ Doc Hub ๆก็›ฎ่ฎพ็ฝฎ้€ป่พ‘็ฑปๅž‹ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ contexโ€ฆ โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --entry-id <str> Doc Hub entryIdใ€‚ [required] โ”‚\nโ”‚ * --logical-type <str> ็›ฎๆ ‡้€ป่พ‘ๅˆ†็ฑป๏ผŒไพ‹ๅฆ‚ project_planning / โ”‚\nโ”‚ decision_meetingใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ provider๏ผŒๅฆๅˆ™ไธŽ โ”‚\nโ”‚ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
30
+ "doc-hub get-root": " \n Usage: project-agent doc-hub get-root [OPTIONS] \n \n ่ฏปๅ–ๆŸไธช provider ๅฝ“ๅ‰้…็ฝฎ็š„ Doc Hub ๆ น่Š‚็‚นใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub ๅฝ’ๅฑž๏ผ›doc-hub โ”‚\nโ”‚ register/sync-manifest ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ โ”‚\nโ”‚ provider๏ผŒๅฆๅˆ™ไธŽ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผใ€‚ โ”‚\nโ”‚ [default: feishu] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
31
+ "doc-hub index": " \n Usage: project-agent doc-hub index [OPTIONS] \n \n ๆž„ๅปบ้กน็›ฎ็š„ Doc Hub ็ดขๅผ•่ง†ๅ›พใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ --channel-group-id <str> MagicCampus ้กน็›ฎ็พค IDใ€‚ๆœชไผ  --project-id โ”‚\nโ”‚ ๆ—ถ็”จๅฎƒๅๆŸฅ้กน็›ฎ๏ผ›่Šๅคฉๆธ ้“้ป˜่ฎค magic-campusใ€‚ โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ provider๏ผŒๅฆๅˆ™ โ€ฆ โ”‚\nโ”‚ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผโ€ฆ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
32
+ "doc-hub propose-updates": " \n Usage: project-agent doc-hub propose-updates [OPTIONS] \n \n ๆ นๆฎๆŸๆฌกๆ–‡ๆกฃ้˜…่ฏป็ป“ๆžœ็”Ÿๆˆๅพ…ๅฎกๆ‰นๆ›ดๆ–ฐ Proposalใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --read-id <str> doc-hub read ่ฟ”ๅ›ž็š„ readIdใ€‚ [required] โ”‚\nโ”‚ --actor-user-id <str> ๆ‰ง่กŒ่ฟ™ๆฌกๆญฃๅผๅ†™ๆ“ไฝœ็š„ๅ†…้ƒจ userIdใ€‚้œ€่ฆๅฎก่ฎก โ€ฆ โ”‚\nโ”‚ owner ๆ ก้ชŒ็š„ๅ‘ฝไปคๅบ”ๆ˜พๅผไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ provider๏ผŒๅฆๅˆ™ โ€ฆ โ”‚\nโ”‚ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผโ€ฆ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
33
+ "doc-hub read": " \n Usage: project-agent doc-hub read [OPTIONS] \n \n ่ฎฐๅฝ•ไธ€ๆฌกๅค–้ƒจๆ–‡ๆกฃ้˜…่ฏป็ป“ๆžœ๏ผŒไพ›ๅŽ็ปญ็”Ÿๆˆ Proposalใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ โ”‚\nโ”‚ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --entry-id <str> ่ฆ่ฎฐๅฝ•่ฏปๅ–็ป“ๆžœ็š„ Doc Hub entryIdใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --content-json <str> JSON ๅญ—็ฌฆไธฒๆˆ–ๆ–‡ไปถ่ทฏๅพ„๏ผ›ๅฟ…้กปๆ˜ฏๅฏน่ฑกใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --provider-revision <str> ๅค–้ƒจๅนณๅฐ็š„ๆ–‡ๆกฃ็‰ˆๆœฌๅทๆˆ– revision ๆ ‡่ฏ†ใ€‚ โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ โ”‚\nโ”‚ provider๏ผŒๅฆๅˆ™ไธŽ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜โ€ฆ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
34
+ "doc-hub register": " \n Usage: project-agent doc-hub register [OPTIONS] \n \n ๆณจๅ†Œไธ€ๆกๅค–้ƒจๆ–‡ๆกฃ่ฎฐๅฝ•ๅˆฐ Doc Hubใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --title <str> ๆ–‡ๆกฃๆ ‡้ข˜๏ผŒ็”จไบŽ Doc Hub ๅฑ•็คบๅ’Œ็ดขๅผ•ใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --doc-kind <str> ๆ–‡ๆกฃ็ฑปๅž‹๏ผŒไพ‹ๅฆ‚ user_documentใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu โ”‚\nโ”‚ ๆˆ– google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifesโ€ฆ โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ โ”‚\nโ”‚ provider๏ผŒๅฆๅˆ™ไธŽ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„ โ€ฆ โ”‚\nโ”‚ --logical-type <str> ้€ป่พ‘ๅˆ†็ฑป๏ผŒไพ‹ๅฆ‚ project_planning / โ”‚\nโ”‚ decision_meetingใ€‚็•™็ฉบๆ—ถ็”ฑๅŽ็ซฏๆŒ‰ โ”‚\nโ”‚ doc_kind/title ๆŽจๆ–ญใ€‚ โ”‚\nโ”‚ --source-logical-type <str> ็”ฑ provider โ”‚\nโ”‚ ็›ฎๅฝ•ไฝ็ฝฎ่งฃๆžๅ‡บ็š„้€ป่พ‘ๅˆ†็ฑป๏ผ›ไผ˜ๅ…ˆ็บง้ซ˜ โ€ฆ โ”‚\nโ”‚ --parent-folder-id <str> ๆ–‡ๆกฃๆ‰€ๅœจ provider ็ˆถ็›ฎๅฝ• ID๏ผŒ็”จไบŽ โ”‚\nโ”‚ Doc Hub ็›ฎๅฝ•ๅŒๆญฅๅ’ŒๆŽ’้šœใ€‚ โ”‚\nโ”‚ --folder-path <str> ๆ–‡ๆกฃๆ‰€ๅœจ provider ็›ฎๅฝ•่ทฏๅพ„๏ผŒ็”จไบŽ Doโ€ฆ โ”‚\nโ”‚ Hub ็›ฎๅฝ•ๅŒๆญฅๅ’ŒๆŽ’้šœใ€‚ โ”‚\nโ”‚ --document-source-kind <str> ๆ–‡ๆกฃๆฅๆบ็ฑปๅž‹๏ผŒไพ‹ๅฆ‚ user_provided ๆˆ– โ”‚\nโ”‚ agent_generatedใ€‚ โ”‚\nโ”‚ [default: user_provided] โ”‚\nโ”‚ --external-doc-id <str> ๅค–้ƒจๅนณๅฐๆ–‡ๆกฃ IDใ€‚ โ”‚\nโ”‚ --url <str> ๅค–้ƒจๆ–‡ๆกฃ่ฎฟ้—ฎ้“พๆŽฅใ€‚ โ”‚\nโ”‚ --document-id <str> ๆœฌๅœฐ โ”‚\nโ”‚ project_documents.documentId๏ผ›็ณป็ปŸ โ€ฆ โ”‚\nโ”‚ --sprint-id <str> ็›ฎๆ ‡ Sprint ็š„ canonical โ”‚\nโ”‚ sprintIdใ€‚็•™็ฉบๆ—ถ้€šๅธธ่กจ็คบๅฝ“ๅ‰ โ”‚\nโ”‚ Sprint๏ผŒๅ…ทไฝ“ไปฅๅ‘ฝไปคๅฅ‘็บฆไธบๅ‡†ใ€‚ โ”‚\nโ”‚ --entry-key <str> ่ฐƒ็”จๆ–นๆไพ›็š„ๅน‚็ญ‰ โ”‚\nโ”‚ keyใ€‚็•™็ฉบๆ—ถ็”ฑๅŽ็ซฏ็”Ÿๆˆใ€‚ โ”‚\nโ”‚ --status <str> ๆก็›ฎ็Šถๆ€๏ผŒ้ป˜่ฎค activeใ€‚ โ”‚\nโ”‚ [default: active] โ”‚\nโ”‚ --summary <str> ๆ–‡ๆกฃๆ‘˜่ฆ๏ผŒไพ›็ดขๅผ•ๅ’ŒๅŽ็ปญ proposal โ”‚\nโ”‚ ๅˆคๆ–ญไฝฟ็”จใ€‚ โ”‚\nโ”‚ --attributes <str> ๆ‰ฉๅฑ•ๅฑžๆ€ง JSON โ”‚\nโ”‚ ๆ•ฐ็ป„๏ผ›ๆœช็Ÿฅๅฑžๆ€งไผš่‡ชๅŠจๅˆ›ๅปบใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
35
+ "doc-hub relate": " \n Usage: project-agent doc-hub relate [OPTIONS] \n \n ไธบไธคไธช Doc Hub ๆก็›ฎๅปบ็ซ‹ๅ…ณ็ณปใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --from-entry-id <str> ๅ…ณ็ณป่ตท็‚น Doc Hub entryIdใ€‚ [required] โ”‚\nโ”‚ * --to-entry-id <str> ๅ…ณ็ณป็ปˆ็‚น Doc Hub entryIdใ€‚ [required] โ”‚\nโ”‚ * --relation-kind <str> ๅ…ณ็ณป็ฑปๅž‹๏ผŒไพ‹ๅฆ‚ references / supersedesใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --status <str> ๅ…ณ็ณป็Šถๆ€๏ผŒ้ป˜่ฎค activeใ€‚ [default: active] โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ provider๏ผŒๅฆๅˆ™ โ€ฆ โ”‚\nโ”‚ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผโ€ฆ โ”‚\nโ”‚ --attributes <str> ๆ‰ฉๅฑ•ๅฑžๆ€ง JSON ๆ•ฐ็ป„๏ผ›ๆœช็Ÿฅๅฑžๆ€งไผš่‡ชๅŠจๅˆ›ๅปบใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
36
+ "doc-hub remove": " \n Usage: project-agent doc-hub remove [OPTIONS] \n \n ไปŽ Doc Hub ็ดขๅผ•็งป้™คๆ–‡ๆกฃๆก็›ฎ๏ผŒไธๅˆ ้™คๅค–้ƒจๆ–‡ไปถใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --entry-id <str> ่ฆ็งป้™ค็š„ Doc Hub entryIdใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
37
+ "doc-hub set-provider": " \n Usage: project-agent doc-hub set-provider [OPTIONS] \n \n ็ป็”จๆˆทไบŒๆฌก็กฎ่ฎคๅŽๅˆ‡ๆขๆ–ฐๆ–‡ๆกฃ้ป˜่ฎคๅนณๅฐ๏ผ›ไธ่ฟ็งปๅทฒๆœ‰ๆ–‡ๆกฃใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ provider๏ผŒๅฆๅˆ™ โ€ฆ โ”‚\nโ”‚ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผโ€ฆ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --actor-user-id <str> ๆ‰ง่กŒ่ฟ™ๆฌกๆญฃๅผๅ†™ๆ“ไฝœ็š„ๅ†…้ƒจ userIdใ€‚้œ€่ฆๅฎก่ฎก โ€ฆ โ”‚\nโ”‚ owner ๆ ก้ชŒ็š„ๅ‘ฝไปคๅบ”ๆ˜พๅผไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --confirmed ไป…ๅœจ็”จๆˆทไบŒๆฌก็กฎ่ฎคๆœฌๆฌกๅˆ‡ๆขๅŽไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
38
+ "doc-hub sync-manifest": " \n Usage: project-agent doc-hub sync-manifest [OPTIONS] \n \n ๆŒ‰ provider/host ๆ‰ซๆๅˆฐ็š„ๆ–‡ๆกฃๆธ…ๅ•ๆ‰น้‡ๅŒๆญฅ Doc Hub registryใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ provider๏ผŒๅฆๅˆ™ โ€ฆ โ”‚\nโ”‚ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผโ€ฆ โ”‚\nโ”‚ * --manifest-json <str> provider-neutral ๆ–‡ๆกฃๆธ…ๅ• JSON ๆˆ– JSON โ”‚\nโ”‚ ๆ–‡ไปถ่ทฏๅพ„ใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
39
+ "loop": " \n Usage: project-agent loop [OPTIONS] COMMAND [ARGS]... \n \n ่ฟ่กŒๅ’Œๆฃ€ๆŸฅ backend-owned durable loop jobsใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ run-once Claim and run one due loop job. โ”‚\nโ”‚ list List loop jobs for a project. โ”‚\nโ”‚ record-result Record a runtime/provider execution result for a claimed โ”‚\nโ”‚ loop job. โ”‚\nโ”‚ enqueue-bootstrap Debug helper: enqueue bootstrap_continue for a project. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
40
+ "loop enqueue-bootstrap": " \n Usage: project-agent loop enqueue-bootstrap [OPTIONS] \n \n Debug helper: enqueue bootstrap_continue for a project. \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --reason <str> Debug enqueue reason. [default: manual_debug] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
41
+ "loop list": " \n Usage: project-agent loop list [OPTIONS] \n \n List loop jobs for a project. \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
42
+ "loop record-result": " \n Usage: project-agent loop record-result [OPTIONS] \n \n Record a runtime/provider execution result for a claimed loop job. \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --loop-job-id <str> Loop job id returned by run-once/list. โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --outcome <str> success / retryable_failed / blocked. โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --result-json <str> Optional result object JSON. โ”‚\nโ”‚ --reason <str> Failure or blocker reason. โ”‚\nโ”‚ --next-run-at <str> Retry timestamp for retryable_failed. โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
43
+ "meeting": " \n Usage: project-agent meeting [OPTIONS] COMMAND [ARGS]... \n \n ๆŠŠๅฝ•้Ÿณ่ฝฌๅฝ•ๅ’Œ Fireflies ไผš่ฎฎๅ†™ๅ…ฅ Project Agent ๆ•ฐๆฎๅบ“ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ save ไปŽ stdin ่ฏปๅ–ไผš่ฎฎ JSON๏ผŒๅœจ Project Agent ๆ•ฐๆฎๅบ“ไธญๅปบ่กจๅนถๅ†™ๅ…ฅใ€‚ โ”‚\nโ”‚ parse-time ๆ ก้ชŒไผš่ฎฎๅฎž้™…ๆ—ถ้—ดใ€‚ๅฏ่งฃๆžๆ—ถ่พ“ๅ‡บ UTC ๆ—ถ้—ดใ€‚ โ”‚\nโ”‚ tasks ๅทฒไฟๅญ˜ไผš่ฎฎ็บช่ฆ็š„็‹ฌ็ซ‹ Task ๅŽๅค„็†ไธŽๆขๅคใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
44
+ "meeting parse-time": " \n Usage: project-agent meeting parse-time [OPTIONS] \n \n ๆ ก้ชŒไผš่ฎฎๅฎž้™…ๆ—ถ้—ดใ€‚ๅฏ่งฃๆžๆ—ถ่พ“ๅ‡บ UTC ๆ—ถ้—ดใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --value <str> ISO 8601 ๆˆ– epochใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
45
+ "meeting save": " \n Usage: project-agent meeting save [OPTIONS] \n \n ไปŽ stdin ่ฏปๅ–ไผš่ฎฎ JSON๏ผŒๅœจ Project Agent ๆ•ฐๆฎๅบ“ไธญๅปบ่กจๅนถๅ†™ๅ…ฅใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
46
+ "meeting tasks": " \n Usage: project-agent meeting tasks [OPTIONS] COMMAND [ARGS]... \n \n ๅทฒไฟๅญ˜ไผš่ฎฎ็บช่ฆ็š„็‹ฌ็ซ‹ Task ๅŽๅค„็†ไธŽๆขๅคใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ pending ่ฏปๅ–ๅทฒไฟๅญ˜็บช่ฆ็š„ๅพ…ๅŠžๅŽๅค„็†๏ผ›ๅŒ…ๆ‹ฌ summarized๏ผŒไธ่ฎฟ้—ฎ Firefliesใ€‚ โ”‚\nโ”‚ plan ไปŽๅทฒไฟๅญ˜็บช่ฆ็”Ÿๆˆ็š„ JSON ๅ›บๅŒ–็จณๅฎš่ฎกๅˆ’๏ผ›ๅŒไธ€ไผš่ฎฎไธๅฏ่ฆ†็›–ใ€‚ โ”‚\nโ”‚ run ๅ•้ๆ‰ง่กŒไธ€ๅœบไผš่ฎฎ็š„ๆŒไน…ๅŒ–่ฎกๅˆ’๏ผ›้€้กน่ฎฐๅฝ•ๅนถๆฑ‡ๆ€ป้€š็Ÿฅใ€‚ โ”‚\nโ”‚ placement ไป…่กฅๅ……ๅฐšๆœชๅˆ›ๅปบ็š„ๅ•้กนไปปๅŠกๅฝ’ๅฑž๏ผ›ไฟ็•™ๅŽŸ่ฎกๅˆ’ไธŽๅน‚็ญ‰้”ฎใ€‚ โ”‚\nโ”‚ resume ๅ‘จๆœŸๅ…ฅๅฃ๏ผšๅ•้็ปญ่ท‘ๅทฒๆœ‰่ฎกๅˆ’๏ผŒๅนถ่ฟ”ๅ›ž้œ€่ฆไปŽๅทฒไฟๅญ˜็บช่ฆๆๅ–็š„ไผš่ฎฎใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
47
+ "meeting tasks pending": " \n Usage: project-agent meeting tasks pending [OPTIONS] \n \n ่ฏปๅ–ๅทฒไฟๅญ˜็บช่ฆ็š„ๅพ…ๅŠžๅŽๅค„็†๏ผ›ๅŒ…ๆ‹ฌ summarized๏ผŒไธ่ฎฟ้—ฎ Firefliesใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
48
+ "meeting tasks placement": " \n Usage: project-agent meeting tasks placement [OPTIONS] \n \n ไป…่กฅๅ……ๅฐšๆœชๅˆ›ๅปบ็š„ๅ•้กนไปปๅŠกๅฝ’ๅฑž๏ผ›ไฟ็•™ๅŽŸ่ฎกๅˆ’ไธŽๅน‚็ญ‰้”ฎใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --meeting-id <str> [required] โ”‚\nโ”‚ * --input <str> [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
49
+ "meeting tasks plan": " \n Usage: project-agent meeting tasks plan [OPTIONS] \n \n ไปŽๅทฒไฟๅญ˜็บช่ฆ็”Ÿๆˆ็š„ JSON ๅ›บๅŒ–็จณๅฎš่ฎกๅˆ’๏ผ›ๅŒไธ€ไผš่ฎฎไธๅฏ่ฆ†็›–ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --meeting-id <str> [required] โ”‚\nโ”‚ * --input <str> [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
50
+ "meeting tasks resume": " \n Usage: project-agent meeting tasks resume [OPTIONS] \n \n ๅ‘จๆœŸๅ…ฅๅฃ๏ผšๅ•้็ปญ่ท‘ๅทฒๆœ‰่ฎกๅˆ’๏ผŒๅนถ่ฟ”ๅ›ž้œ€่ฆไปŽๅทฒไฟๅญ˜็บช่ฆๆๅ–็š„ไผš่ฎฎใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
51
+ "meeting tasks run": " \n Usage: project-agent meeting tasks run [OPTIONS] \n \n ๅ•้ๆ‰ง่กŒไธ€ๅœบไผš่ฎฎ็š„ๆŒไน…ๅŒ–่ฎกๅˆ’๏ผ›้€้กน่ฎฐๅฝ•ๅนถๆฑ‡ๆ€ป้€š็Ÿฅใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --meeting-id <str> [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
52
+ "mind": " \n Usage: project-agent mind [OPTIONS] COMMAND [ARGS]... \n \n ่ฏปๅ– Project Mind๏ผ›ๆญฃๅผๅ†™ๅ…ฅ้€š่ฟ‡ Taskใ€Sprintใ€Proposal ๅœบๆ™ฏๅ‘ฝไปคๆ‰ง่กŒใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ migrate-tasks ๅฐ†ๅ…จ้ƒจๆœชๆ˜ ๅฐ„็š„ Local Task ๆณจๅ†Œๅˆฐ Task Center๏ผ›ๅŒ…ๅซๅކๅฒ โ”‚\nโ”‚ Sprintใ€‚ โ”‚\nโ”‚ read ่ฏปๅ– Project Mind ็š„ summary ๆˆ– full ่ง†ๅ›พ๏ผ›็ช„่ฏป่ตฐ query โ”‚\nโ”‚ applyใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
53
+ "mind read": " \n Usage: project-agent mind read [OPTIONS] COMMAND [ARGS]... \n \n ่ฏปๅ– Project Mind ็š„ summary ๆˆ– full ่ง†ๅ›พ๏ผ›็ช„่ฏป่ตฐ query applyใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ --view <str> ่ฏปๅ–่ง†ๅ›พ๏ผšsummary|full๏ผ›summary โ”‚\nโ”‚ ่ฟ”ๅ›žๅฝ“ๅ‰ๆ‘˜่ฆ๏ผŒfull ่ฟ”ๅ›žๅฎŒๆ•ด snapshotใ€‚ โ”‚\nโ”‚ [default: summary] โ”‚\nโ”‚ --source-kind <str> ่ฐƒ็”จๆฅๆบ็ฑปๅž‹ใ€‚ไผ  project_group โ”‚\nโ”‚ ๆ—ถไผšๅฏ็”จๆฅๆบ็พคไธŽ projectId ็š„่พน็•Œๆ ก้ชŒใ€‚ โ”‚\nโ”‚ --channel <str> ่Šๅคฉ/ๆถˆๆฏๆธ ้“ๅ๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ magic-campusใ€‚็”จไบŽ binding โ”‚\nโ”‚ ่งฃๆžๅ’Œๆฅๆบ่พน็•Œๆ ก้ชŒ๏ผ›ๆ–‡ๆกฃๅนณๅฐ่ฏท็”จ โ”‚\nโ”‚ --providerใ€‚ โ”‚\nโ”‚ --provider <str> ๅค–้ƒจๆ–‡ๆกฃๅนณๅฐ provider๏ผŒไพ‹ๅฆ‚ feishu ๆˆ– โ”‚\nโ”‚ google-driveใ€‚็”จไบŽๆ–‡ๆกฃไธŽ doc-hub โ”‚\nโ”‚ ๅฝ’ๅฑž๏ผ›doc-hub register/sync-manifest โ”‚\nโ”‚ ๆœชไผ ๆ—ถๆฒฟ็”จๅทฒ็™ป่ฎฐๅŒไธ€ๆ–‡ๆกฃ็š„ provider๏ผŒๅฆๅˆ™ โ€ฆ โ”‚\nโ”‚ bind-space โ”‚\nโ”‚ ไธ€ๆ ทไฝฟ็”จ้กน็›ฎ้ป˜่ฎคๅนณๅฐ๏ผ›ๅ…ถไป–ๅ‘ฝไปคๆŒ‰ๅ„่‡ช้ป˜่ฎคๅ€ผโ€ฆ โ”‚\nโ”‚ --channel-group-id <str> ๅทฒๅ†™ๅ…ฅ project_bindings.external_channel_iโ€ฆ โ”‚\nโ”‚ ็š„็พค่Š IDใ€‚ๅธธ็”จไบŽ็›ดๆŽฅๆŒ‰็ป‘ๅฎš้กน็›ฎ็พคๅๆŸฅ โ”‚\nโ”‚ projectId ๅนถ่ฏปๅ– Project Mindใ€‚ โ”‚\nโ”‚ --delivery-to <str> ๆฅๆบๆŠ•้€’็›ฎๆ ‡ๆ ‡่ฏ†ใ€‚ๅ’Œ chat-id / subject / โ”‚\nโ”‚ group-id ไธ€่ตทๅ‚ไธŽ project_group binding โ”‚\nโ”‚ ่งฃๆžใ€‚ โ”‚\nโ”‚ --chat-id <str> ่Šๅคฉไผš่ฏ IDใ€‚Feishu ้กน็›ฎ็พคๅธธ่งๅ€ผไธบ oc_xxx โ”‚\nโ”‚ ๆˆ– chat:oc_xxx๏ผ›CLI ไผšๆŒ‰ๆ—ขๆœ‰่ง„ๅˆ™ๅš่ง„่ŒƒๅŒ–ใ€‚ โ”‚\nโ”‚ --subject <str> ๆฅๆบไธปไฝ“ ID๏ผŒไพ‹ๅฆ‚ไผš่ฏไธปไฝ“ๆˆ–็”จๆˆทไธปไฝ“ใ€‚ไป…ๅœจ โ”‚\nโ”‚ binding ่งฃๆž้œ€่ฆ่ฏฅไฟกๅทๆ—ถไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --group-id <str> ็พค่Š ID ไฟกๅทใ€‚็”จไบŽ resolve-group ๆˆ– โ”‚\nโ”‚ project_group ่พน็•Œๆ ก้ชŒ๏ผŒไธๆ˜ฏๅ†…้ƒจ โ”‚\nโ”‚ projectIdใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
54
+ "monitoring": " \n Usage: project-agent monitoring [OPTIONS] COMMAND [ARGS]... \n \n ้…็ฝฎ็›‘ๆŽง็ญ–็•ฅ๏ผ›ๅ†…้ƒจ่ฏ„ไผฐไป…ไพ› scheduled/report ๆถˆ่ดนใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ plan ๅผ€ๅฏๆˆ–ๅ…ณ้—ญ้กน็›ฎ็š„็›‘ๆŽง็ญ–็•ฅใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
55
+ "monitoring evaluate-followups": " \n Usage: project-agent monitoring evaluate-followups [OPTIONS] \n \n ๅช่ฎก็ฎ— follow-up ็ป“ๆžœ๏ผŒไธๅ†™ๅ…ฅ monitoring runใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --at <str> ่ฏ„ไผฐๆ—ถ็‚น๏ผŒไฝฟ็”จ ISO-8601 ๆ—ถ้—ดๅญ—็ฌฆไธฒใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --task-id <str> ็›ฎๆ ‡ Task ็š„ canonical โ”‚\nโ”‚ taskIdใ€‚ๅชๅœจๅ‘ฝไปคๆ”ฏๆŒๅ•ไปปๅŠกไธŠไธ‹ๆ–‡ๆ—ถไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --format <str> ่พ“ๅ‡บๆ ผๅผใ€‚็›ฎๅ‰ๅชๆ”ฏๆŒ jsonใ€‚ [default: json] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
56
+ "monitoring plan": " \n Usage: project-agent monitoring plan [OPTIONS] \n \n ๅผ€ๅฏๆˆ–ๅ…ณ้—ญ้กน็›ฎ็š„็›‘ๆŽง็ญ–็•ฅใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --enabled --disabled ็›‘ๆŽงๅผ€ๅ…ณใ€‚ไผ  --disabled โ”‚\nโ”‚ ๅฏๅ…ณ้—ญ่ฏฅ้กน็›ฎ็š„็›‘ๆŽง่ฎกๅˆ’ใ€‚ โ”‚\nโ”‚ [default: enabled] โ”‚\nโ”‚ --attributes <str> ๆ‰ฉๅฑ•ๅฑžๆ€ง JSON โ”‚\nโ”‚ ๆ•ฐ็ป„๏ผ›ๆœช็Ÿฅๅฑžๆ€งไผš่‡ชๅŠจๅˆ›ๅปบใ€‚ โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
57
+ "monitoring run": " \n Usage: project-agent monitoring run [OPTIONS] \n \n ๆ‰ง่กŒไธ€ๆฌก็›‘ๆŽง่ฏ„ไผฐ๏ผŒๅนถ่ฝๅบ“ๅญ˜ๆกฃ็š„ monitoring runใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค ID โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ context โ”‚\nโ”‚ ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --at <str> ่ฏ„ไผฐๆ—ถ็‚น๏ผŒไฝฟ็”จ ISO-8601 ๆ—ถ้—ดๅญ—็ฌฆไธฒใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --task-id <str> ็›ฎๆ ‡ Task ็š„ canonical โ”‚\nโ”‚ taskIdใ€‚ๅชๅœจๅ‘ฝไปคๆ”ฏๆŒๅ•ไปปๅŠกไธŠไธ‹ๆ–‡ๆ—ถไผ ๅ…ฅใ€‚ โ”‚\nโ”‚ --format <str> ่พ“ๅ‡บๆ ผๅผใ€‚็›ฎๅ‰ๅชๆ”ฏๆŒ jsonใ€‚ [default: json] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
58
+ "onboarding": " \n Usage: project-agent onboarding [OPTIONS] COMMAND [ARGS]... \n \n ไธ€ๆฌกๅค„็†้กน็›ฎ็พคๅ…ฅ็พคๆˆๅ‘˜ onboardingใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ apply ไปŽ stdin ๆŽฅๆ”ถๅ…ฅ็พคไบ‹ไปถ JSON๏ผŒๅนถ่ฟ”ๅ›ž terminal receiptใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
59
+ "onboarding apply": " \n Usage: project-agent onboarding apply [OPTIONS] \n \n ไปŽ stdin ๆŽฅๆ”ถๅ…ฅ็พคไบ‹ไปถ JSON๏ผŒๅนถ่ฟ”ๅ›ž terminal receiptใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
60
+ "proposal": " \n Usage: project-agent proposal [OPTIONS] COMMAND [ARGS]... \n \n ไธ€ๆฌกๆŸฅ่ฏขใ€ๆ‰นๅ‡†ๆˆ–ๆ‹’็ปไธ€ไธชๆˆ–ๅคšไธช Proposalใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ apply ไปŽ stdin ๆŽฅๆ”ถ Proposal scene JSON๏ผŒๅนถ่ฟ”ๅ›ž terminal receiptใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
61
+ "proposal apply": " \n Usage: project-agent proposal apply [OPTIONS] \n \n ไปŽ stdin ๆŽฅๆ”ถ Proposal scene JSON๏ผŒๅนถ่ฟ”ๅ›ž terminal receiptใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
62
+ "query": " \n Usage: project-agent query [OPTIONS] COMMAND [ARGS]... \n \n ไธ€ๆฌก่ฏปๅ–้กน็›ฎใ€็”จๆˆทใ€Taskใ€Sprint ๆˆ– roster ไบ‹ๅฎžใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ apply ไปŽ stdin ๆŽฅๆ”ถไธ€ไธช Query scene JSON document๏ผŒๅนถ่ฟ”ๅ›ž compact receiptใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
63
+ "query apply": " \n Usage: project-agent query apply [OPTIONS] \n \n ไปŽ stdin ๆŽฅๆ”ถไธ€ไธช Query scene JSON document๏ผŒๅนถ่ฟ”ๅ›ž compact receiptใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
64
+ "report": " \n Usage: project-agent report [OPTIONS] COMMAND [ARGS]... \n \n ๅŸบไบŽๅฝ“ๅ‰้กน็›ฎ็Šถๆ€็”Ÿๆˆ็ป“ๆž„ๅŒ–ๆŠฅๅ‘Š๏ผ›Agent ็ƒญ่ทฏๅพ„่ตฐ report applyใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ apply ไปŽ stdin ๆŽฅๆ”ถ Reporting scene JSON๏ผŒๅนถ่ฟ”ๅ›ž terminal receiptใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
65
+ "report apply": " \n Usage: project-agent report apply [OPTIONS] \n \n ไปŽ stdin ๆŽฅๆ”ถ Reporting scene JSON๏ผŒๅนถ่ฟ”ๅ›ž terminal receiptใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
66
+ "report build": " \n Usage: project-agent report build [OPTIONS] \n \n ็”Ÿๆˆๆ—ฅๆŠฅใ€follow-up ๆˆ– kickoff ๆŠฅๅ‘Š๏ผŒๅนถ่ฟ”ๅ›ž็ป“ๆž„ๅŒ– JSONใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ  โ€ฆ โ”‚\nโ”‚ ID ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ โ”‚\nโ”‚ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --report-kind <daily_status|followu ๆŠฅๅ‘Š็ฑปๅž‹ใ€‚ๅธธ่งๅ€ผๅŒ…ๆ‹ฌ โ”‚\nโ”‚ p|kickoff> daily_statusใ€followupโ€ฆ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --at <str> ๆŠฅๅ‘Š็”Ÿๆˆๆ—ถ็‚น๏ผŒไฝฟ็”จ โ”‚\nโ”‚ ISO-8601 ๆ—ถ้—ดๅญ—็ฌฆไธฒใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --task-id <str> ็›ฎๆ ‡ Task ็š„ canonical โ”‚\nโ”‚ taskIdใ€‚ๅชๅœจๅ‘ฝไปคๆ”ฏๆŒๅ•โ€ฆ โ”‚\nโ”‚ --monitoring-run-id <str> ๅค็”จ monitoring run โ”‚\nโ”‚ IDใ€‚ โ”‚\nโ”‚ --format <str> ่พ“ๅ‡บๆ ผๅผใ€‚็›ฎๅ‰ๅชๆ”ฏๆŒ โ”‚\nโ”‚ jsonใ€‚ โ”‚\nโ”‚ [default: json] โ”‚\nโ”‚ --help Show this message and โ”‚\nโ”‚ exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
67
+ "scheduled": " \n Usage: project-agent scheduled [OPTIONS] COMMAND [ARGS]... \n \n ๆ‰ง่กŒๅฎšๆ—ถ็›‘ๆŽงๅ…ฅๅฃ๏ผŒ่พ“ๅ‡บ้€‚ๅˆ่ฐƒๅบฆๅ™จๆถˆ่ดน็š„ๆ ‡ๅ‡†็ป“ๆžœใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ run ๆŒ‰็ป™ๅฎšๆ—ถ้—ด็ช—ๆ‰ง่กŒไธ€ๆฌกๅฎšๆ—ถ็›‘ๆŽง๏ผŒๅนถ่พ“ๅ‡บ text ๅฅ‘็บฆ็ป“ๆžœใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
68
+ "scheduled run": " \n Usage: project-agent scheduled run [OPTIONS] \n \n ๆŒ‰็ป™ๅฎšๆ—ถ้—ด็ช—ๆ‰ง่กŒไธ€ๆฌกๅฎšๆ—ถ็›‘ๆŽง๏ผŒๅนถ่พ“ๅ‡บ text ๅฅ‘็บฆ็ป“ๆžœใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --project-id <str> ้กน็›ฎๅ†…้ƒจ canonical โ”‚\nโ”‚ projectIdใ€‚ไธ่ฆ็›ดๆŽฅไผ ็พค Iโ€ฆ โ”‚\nโ”‚ ๆˆ–ๅค–้ƒจๆ–‡ๆกฃ โ”‚\nโ”‚ ID๏ผ›ๅชๆœ‰ๅค–้ƒจไฟกๅทๆ—ถๅ…ˆ็”จ โ”‚\nโ”‚ context ๅ‘ฝไปค่งฃๆžใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --window <09:00|10:00|11:00|15:00| ่ฐƒๅบฆๆ—ถ้—ด็ช—๏ผŒๅ–ๅ€ผไธบ 09:00 โ€ฆ โ”‚\nโ”‚ 18:00> 10:00 / 11:00 / 15:00 / โ”‚\nโ”‚ 18:00ใ€‚็”ฑไธŠๆธธ cron ๅ†ณๅฎšใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ * --at <str> ๆœฌๆฌก่ฐƒๅบฆ่งฆๅ‘ๆ—ถ็‚น๏ผŒไฝฟ็”จ โ”‚\nโ”‚ ISO-8601 ๆ—ถ้—ดๅญ—็ฌฆไธฒใ€‚ โ”‚\nโ”‚ [required] โ”‚\nโ”‚ --format <str> ่พ“ๅ‡บๆ ผๅผใ€‚็›ฎๅ‰ๅชๆ”ฏๆŒ โ”‚\nโ”‚ textใ€‚ โ”‚\nโ”‚ [default: text] โ”‚\nโ”‚ --help Show this message and โ”‚\nโ”‚ exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
69
+ "sprint": " \n Usage: project-agent sprint [OPTIONS] COMMAND [ARGS]... \n \n ไธ€ๆฌกๅฎŒๆˆ Sprintใ€Workstream ไธŽ tracking ๆฒป็†ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ apply ไปŽ stdin ๆŽฅๆ”ถ Sprint scene JSON document๏ผŒๅนถ่ฟ”ๅ›ž terminal โ”‚\nโ”‚ receiptใ€‚ โ”‚\nโ”‚ rollover ่ง„ๅˆ’ๆˆ–ๆ‰ง่กŒ Sprint ๆ”ถๅฃ๏ผŒๅนถๅœจๅ‘ฝไปคๅ†…ๅค„็†ๆœชๅฎŒๆˆ Task ๅŽปๅ‘ใ€‚ โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
70
+ "sprint apply": " \n Usage: project-agent sprint apply [OPTIONS] \n \n ไปŽ stdin ๆŽฅๆ”ถ Sprint scene JSON document๏ผŒๅนถ่ฟ”ๅ›ž terminal receiptใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
71
+ "sprint rollover": " \n Usage: project-agent sprint rollover [OPTIONS] \n \n ่ง„ๅˆ’ๆˆ–ๆ‰ง่กŒ Sprint ๆ”ถๅฃ๏ผŒๅนถๅœจๅ‘ฝไปคๅ†…ๅค„็†ๆœชๅฎŒๆˆ Task ๅŽปๅ‘ใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
72
+ "task": " \n Usage: project-agent task [OPTIONS] COMMAND [ARGS]... \n \n ไธ€ๆฌกๅฎŒๆˆ Task create/update/complete/cancel/move/snoozeใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\nโ•ญโ”€ Commands โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ apply ไปŽ stdin ๆŽฅๆ”ถไธ€ไธช Task scene JSON document๏ผŒๅนถ่ฟ”ๅ›ž terminal โ”‚\nโ”‚ receiptใ€‚ โ”‚\nโ”‚ maintain Prepare current evidence, apply Agent synthesis (append or amend โ”‚\nโ”‚ WorkNodes), or reconcile an uncertain write. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
73
+ "task apply": " \n Usage: project-agent task apply [OPTIONS] \n \n ไปŽ stdin ๆŽฅๆ”ถไธ€ไธช Task scene JSON document๏ผŒๅนถ่ฟ”ๅ›ž terminal receiptใ€‚ \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> ๅ›บๅฎšไธบ @-๏ผŒไปŽ stdin ่ฏปๅ– JSONใ€‚ [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n",
74
+ "task maintain": " \n Usage: project-agent task maintain [OPTIONS] \n \n Prepare current evidence, apply Agent synthesis (append or amend WorkNodes), \n or reconcile an uncertain write. \n \nโ•ญโ”€ Options โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ\nโ”‚ * --input <str> [required] โ”‚\nโ”‚ --help Show this message and exit. โ”‚\nโ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ\n\n"
75
+ }
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.4
2
+ Name: project-agent-client
3
+ Version: 0.1.0
4
+ Summary: Remote Project Agent command-line client
5
+ Requires-Python: >=3.11
6
+ Description-Content-Type: text/markdown
7
+
8
+ # Project Agent CLI
9
+
10
+ Install the client with `python -m pip install project-agent-client`, or install
11
+ from this repository with `python -m pip install ./apps/cli`. Build a wheel
12
+ with `python -m build apps/cli` for distribution. The installed
13
+ entry point is `project-agent`; do not install it into the same environment as
14
+ the legacy backend package, which exposes the same command name.
15
+
16
+ This separately packaged client forwards Task, Query, Sprint and Proposal scene
17
+ commands, Quest Task handoffs, and explicitly supported Context, Doc Hub,
18
+ Meeting, Bootstrap, Attribute, Report, Monitoring and Scheduled commands.
19
+ The service must implement and authorize each operation; this client cannot
20
+ override a service-side rejection. Scene receipts and the stdout, stderr and
21
+ exit code of bridged commands are preserved. Administrative database and
22
+ upgrade operations are not exposed through this client. The server's database
23
+ location is never selected by a client-supplied path.
24
+
25
+ Configure `PROJECT_SERVICE_URL` and set `PROJECT_SERVICE_TOKEN` to a Magic
26
+ Campus API Key (access token), or to an existing service grant. The client sends
27
+ it as `Authorization: Bearer <token>`; it does not need Magic Campus account
28
+ API settings or service database credentials. HTTPS is required
29
+ except for a local loopback service. The client does not automatically retry a
30
+ write because a network failure can leave its outcome unknown. Legacy Doc Hub
31
+ JSON-file arguments are read on the client and sent as inline JSON; paths are
32
+ never read on the server. A Magic Campus API Key acts only for its verified
33
+ user; it cannot delegate another actor. Commands that mutate data require an
34
+ active user and the applicable project membership. Existing trusted Agent
35
+ grants can still supply a verified per-request actor.
36
+
37
+ With a personal Magic Campus API Key, Task and Sprint scene writes continue to
38
+ enforce their actor and business rules, and Task Quest commands remain available
39
+ with their own authorization checks. Proposal `list` is readable, while
40
+ `approve` and `reject` require a trusted service grant because the existing
41
+ policy does not yet enforce approval eligibility. For Story/People Quest
42
+ sources, personal keys may use status, query and detail; private query scopes
43
+ must match the caller's active Magic Campus identity. The source operations
44
+ ingest, publish-source, reconcile and history require a trusted service grant
45
+ and an active actor: history also updates the shared review journal. The grant
46
+ must bind the actor or explicitly allow per-request delegation. The CLI bridge supports the
47
+ read-only context commands, Doc Hub reads (`get-root`, `index`, `access target`,
48
+ `access plan`), `meeting parse-time`, `meeting tasks pending`, `mind read`,
49
+ `loop list`, and `monitoring evaluate-followups`; it also supports
50
+ `attribute apply` and `meeting save`, which check project membership.
51
+
52
+ Other bridge commands require a configured trusted service grant: context
53
+ member/identity management, onboarding, all bootstrap commands (including
54
+ `checkpoint` and `loop-state`, which update state), Doc Hub writes, report,
55
+ monitoring writes, scheduled runs, meeting task plan/placement/run/resume, and
56
+ loop writes. These commands do not yet all enforce caller authorization. The
57
+ service grant must have a bound actor or explicitly trust per-request delegation
58
+ for writes. A personal API Key cannot be used to bypass this restriction.
59
+
60
+ With a trusted service grant, meeting `tasks run` and `tasks resume` execute on the service, using the bound
61
+ actor. Existing plans must resolve to that actor; a resume batch with a plan
62
+ for another actor is rejected. Task writes use the service-side Quest handoff.
63
+ Meeting notifications are sent by the service's `magic-campus` executable, so
64
+ that executable and its account configuration must be available in the service
65
+ runtime; an absent executable leaves the notification pending for retry.
66
+ The meeting-assistant skill uses the same `PROJECT_SERVICE_URL` and
67
+ `PROJECT_SERVICE_TOKEN` for meeting state when those are set, and does not
68
+ fall back to a local database if the remote service is unavailable.
69
+
70
+ When an explicitly trusted Agent credential uses `trustActorRefs: true`, the
71
+ runtime must set `PROJECT_SERVICE_ACTOR_REF` to the current verified actor JSON
72
+ (e.g. `{"userId":"..."}`) for CLI bridge operations which need a user. A bound
73
+ actor credential does not need this variable. The service validates that actor
74
+ is active and rejects a conflicting actor in the command input.
@@ -0,0 +1,8 @@
1
+ project_agent_client/__init__.py,sha256=VPNRGWhh91pFUpjB3VQ2kEx4H3cTNHCbbwPcYX0BSdk,46
2
+ project_agent_client/cli.py,sha256=ScYkjfTdLKbHXhtUnNz0ldLMY6k_XaYPYyLuBLqUVJs,9280
3
+ project_agent_client/help.json,sha256=ypkF-1eB86ZEVk1hs2nxIs62qy5MBprx1necdqSXagI,140234
4
+ project_agent_client-0.1.0.dist-info/METADATA,sha256=-7gJG84aNpzWqCyAPL1nEgVk99CbeVWFMOLZ3_Sn1Cw,4668
5
+ project_agent_client-0.1.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
6
+ project_agent_client-0.1.0.dist-info/entry_points.txt,sha256=pE3Jt9nM14ymTSKb5xU9P7iUsTO_jAuAt4RHx9MgK9M,64
7
+ project_agent_client-0.1.0.dist-info/top_level.txt,sha256=QUfymW45eEacwiuIpQ8wjGUneM7xlKKPU-UXjLmlWzM,21
8
+ project_agent_client-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.10.2)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ project-agent = project_agent_client.cli:main
@@ -0,0 +1 @@
1
+ project_agent_client