@qilin-agent/commands 3.1.5 → 3.1.7

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.
@@ -1,57 +1,69 @@
1
1
  /* Generated by @qilin-agent/typert-generator from FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
+ import { createTypertRemoteInfo } from '@qilin-agent/typert-protocol/remote-info'
5
+
4
6
  let _qilin_agent_commands_commands_execute_parameter_0$schema$value
5
- const _qilin_agent_commands_commands_execute_parameter_0$schema = () => (_qilin_agent_commands_commands_execute_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
7
+ const _qilin_agent_commands_commands_execute_parameter_0$schema = () => (_qilin_agent_commands_commands_execute_parameter_0$schema$value ??= z.string())
6
8
  let _qilin_agent_commands_commands_execute_parameter_1$schema$value
7
9
  const _qilin_agent_commands_commands_execute_parameter_1$schema = () => (_qilin_agent_commands_commands_execute_parameter_1$schema$value ??= z.string())
8
10
  let _qilin_agent_commands_commands_execute_parameter_2$schema$value
9
- const _qilin_agent_commands_commands_execute_parameter_2$schema = () => (_qilin_agent_commands_commands_execute_parameter_2$schema$value ??= z.array(z.union([z.intersection(z.object({
11
+ const _qilin_agent_commands_commands_execute_parameter_2$schema = () => (_qilin_agent_commands_commands_execute_parameter_2$schema$value ??= z.array(z.union([z.object({
10
12
  'type': z.literal("image").readonly(),
13
+ 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]).describe('Declared media type, verified against the decoded bytes during admission.'),
14
+ 'data': z.string().describe('Canonical base64 encoding of the image bytes.'),
15
+ 'name': z.string().optional().describe('Optional display name; it is never interpreted as a path.'),
11
16
  }), z.object({
12
- 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]),
13
- 'data': z.string(),
14
- 'name': z.string().optional(),
15
- })), z.object({
16
17
  'type': z.literal("file").readonly(),
17
18
  'receiptId': z.string().readonly(),
18
19
  })])))
19
20
  let _qilin_agent_commands_commands_execute_result$schema$value
20
21
  const _qilin_agent_commands_commands_execute_result$schema = () => (_qilin_agent_commands_commands_execute_result$schema$value ??= z.union([z.undefined(), z.object({
21
- 'commandId': z.intersection(z.string(), z.unknown()).readonly(),
22
+ 'commandId': z.string().readonly().describe('Pairing id carried by this execution\'s lifecycle events.'),
22
23
  'result': z.union([z.object({
23
24
  'kind': z.literal("success").readonly(),
24
25
  'text': z.string().readonly().optional(),
25
- 'sourceEventSeq': z.intersection(z.number(), z.unknown()).readonly().optional(),
26
+ 'sourceEventSeq': z.number().readonly().optional().describe('Earlier authoritative domain event that owns a richer presentation.'),
26
27
  }), z.object({
27
28
  'kind': z.literal("error").readonly(),
28
29
  'text': z.string().readonly(),
29
- })]).readonly(),
30
+ })]).readonly().describe('The handler\'s normalized outcome.'),
30
31
  })]))
31
32
  let _qilin_agent_commands_commands_list_parameter_0$schema$value
32
- const _qilin_agent_commands_commands_list_parameter_0$schema = () => (_qilin_agent_commands_commands_list_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
33
+ const _qilin_agent_commands_commands_list_parameter_0$schema = () => (_qilin_agent_commands_commands_list_parameter_0$schema$value ??= z.string())
33
34
  let _qilin_agent_commands_commands_list_result$schema$value
34
35
  const _qilin_agent_commands_commands_list_result$schema = () => (_qilin_agent_commands_commands_list_result$schema$value ??= z.array(z.object({
35
- 'definitionId': z.intersection(z.string(), z.unknown()).readonly().optional(),
36
- 'name': z.string().readonly(),
37
- 'description': z.string().readonly(),
36
+ 'definitionId': z.string().readonly().optional().describe('Stable plugin-owned identity; absent for definitions without identity-based client behavior.'),
37
+ 'name': z.string().readonly().describe('Lowercase command name without the leading slash.'),
38
+ 'description': z.string().readonly().describe('Human-readable summary used in discovery UI.'),
38
39
  'input': z.object({
39
- 'hint': z.string().readonly(),
40
- 'attachments': z.boolean().readonly().optional(),
41
- }).readonly().optional(),
40
+ 'hint': z.string().readonly().describe('Placeholder shown before the user supplies free-form input.'),
41
+ 'attachments': z.boolean().readonly().optional().describe('Whether composer attachments may accompany an invocation. Absent or false = the executor rejects an invocation carrying attachments and capable composers refuse the submission before dispatch. A declaring command\'s handler receives the admitted durable blocks and owns every further grammar decision, including rejecting sub-commands that cannot use them.'),
42
+ }).readonly().optional().describe('Optional free-form input hint advertised to capable clients.'),
42
43
  })))
44
+ let _qilin_agent_commands_commands_execute_parameter_0_strict$schema$value
45
+ const _qilin_agent_commands_commands_execute_parameter_0_strict$schema = () => (_qilin_agent_commands_commands_execute_parameter_0_strict$schema$value ??= z.string())
46
+ let _qilin_agent_commands_commands_execute_parameter_1_strict$schema$value
47
+ const _qilin_agent_commands_commands_execute_parameter_1_strict$schema = () => (_qilin_agent_commands_commands_execute_parameter_1_strict$schema$value ??= z.string())
48
+ let _qilin_agent_commands_commands_execute_parameter_2_strict$schema$value
49
+ const _qilin_agent_commands_commands_execute_parameter_2_strict$schema = () => (_qilin_agent_commands_commands_execute_parameter_2_strict$schema$value ??= z.array(z.union([z.strictObject({
50
+ 'type': z.literal("image").readonly(),
51
+ 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]).describe('Declared media type, verified against the decoded bytes during admission.'),
52
+ 'data': z.string().describe('Canonical base64 encoding of the image bytes.'),
53
+ 'name': z.string().optional().describe('Optional display name; it is never interpreted as a path.'),
54
+ }), z.strictObject({
55
+ 'type': z.literal("file").readonly(),
56
+ 'receiptId': z.string().readonly(),
57
+ })])))
58
+ let _qilin_agent_commands_commands_list_parameter_0_strict$schema$value
59
+ const _qilin_agent_commands_commands_list_parameter_0_strict$schema = () => (_qilin_agent_commands_commands_list_parameter_0_strict$schema$value ??= z.string())
43
60
 
44
- export const TYPERT = {
61
+ const $remote = createTypertRemoteInfo({
45
62
  package: '@qilin-agent/commands',
46
- face: 'host',
47
- schemas: [
48
- ],
49
- invocations: [
50
- {
51
- id: '@qilin-agent/commands#commands/execute',
63
+ methods: {
64
+ 'commands/execute': {
52
65
  service: 'commands',
53
- namespace: 'commands',
54
- method: 'execute',
66
+ description: 'Parse and execute a known command without sending it to the model. A resolved command\'s lifecycle is logged: `command/run` is appended before the handler is invoked and `command/done` after settlement (a thrown or aborted handler settles as `kind: \'error\'`). Both are direct log-only appends — no turn wraps them, and persistence drains them at ordinary checkpoints. Admission misses (syntax or unknown name) log nothing — they never entered a handler. A `command/run` append failure fails the execution loud; a `command/done` append failure on the handler-failure path is contained so the handler\'s own error stays the reported failure. Attachment admission is enforced here, not in the composer: attachments sent to a command that does not declare `input.attachments`, an absent attachment store, and an exceeded image limit each settle as an error result before the handler runs. Validation rejection starts no attachment writes; a storage failure can leave only unreachable content-addressed objects for deferred collection.',
55
67
  invocation: { kind: 'direct' },
56
68
  scope: {
57
69
  context: 'agent',
@@ -61,32 +73,54 @@ export const TYPERT = {
61
73
  {
62
74
  name: 'agent',
63
75
  wire: 'agentId',
76
+ description: 'exact receiving agent.',
64
77
  source: 'lookup',
65
78
  lookup: 'agent',
66
79
  codec: {
67
80
  mode: 'strict',
68
81
  typeSymbol: '@qilin-agent/session/types#SessionId',
69
82
  create: _qilin_agent_commands_commands_execute_parameter_0$schema,
83
+ jsonSchema: {"type":"string"},
84
+ },
85
+ strictCodec: {
86
+ mode: 'strict',
87
+ typeSymbol: '@qilin-agent/session/types#SessionId',
88
+ create: _qilin_agent_commands_commands_execute_parameter_0_strict$schema,
89
+ jsonSchema: {"type":"string"},
70
90
  },
71
91
  },
72
92
  {
73
93
  name: 'line',
74
- wire: 'line',
94
+ description: 'complete slash-command line.',
75
95
  source: 'json',
76
96
  codec: {
77
97
  mode: 'strict',
78
98
  typeSymbol: '@qilin-agent/commands#commands/execute:line',
79
99
  create: _qilin_agent_commands_commands_execute_parameter_1$schema,
100
+ jsonSchema: {"type":"string"},
101
+ },
102
+ strictCodec: {
103
+ mode: 'strict',
104
+ typeSymbol: '@qilin-agent/commands#commands/execute:line',
105
+ create: _qilin_agent_commands_commands_execute_parameter_1_strict$schema,
106
+ jsonSchema: {"type":"string"},
80
107
  },
81
108
  },
82
109
  {
83
110
  name: 'submittedAttachments',
84
- wire: 'submittedAttachments',
111
+ description: 'encoded images and staged file receipts accompanying the line, in submission order; empty for a plain invocation.',
85
112
  source: 'json',
86
113
  codec: {
87
114
  mode: 'strict',
88
115
  typeSymbol: '@qilin-agent/commands#commands/execute:submittedAttachments',
89
116
  create: _qilin_agent_commands_commands_execute_parameter_2$schema,
117
+ jsonSchema: {"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"image"},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/webp","image/gif"],"description":"Declared media type, verified against the decoded bytes during admission."},"data":{"type":"string","description":"Canonical base64 encoding of the image bytes."},"name":{"type":"string","description":"Optional display name; it is never interpreted as a path."}},"required":["type","mediaType","data"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","const":"file"},"receiptId":{"type":"string"}},"required":["type","receiptId"],"additionalProperties":true}]}},
118
+ },
119
+ strictCodec: {
120
+ mode: 'strict',
121
+ typeSymbol: '@qilin-agent/commands#commands/execute:submittedAttachments',
122
+ create: _qilin_agent_commands_commands_execute_parameter_2_strict$schema,
123
+ jsonSchema: {"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"image"},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/webp","image/gif"],"description":"Declared media type, verified against the decoded bytes during admission."},"data":{"type":"string","description":"Canonical base64 encoding of the image bytes."},"name":{"type":"string","description":"Optional display name; it is never interpreted as a path."}},"required":["type","mediaType","data"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"file"},"receiptId":{"type":"string"}},"required":["type","receiptId"],"additionalProperties":false}]}},
90
124
  },
91
125
  },
92
126
  ],
@@ -95,14 +129,14 @@ export const TYPERT = {
95
129
  mode: 'strict',
96
130
  typeSymbol: '@qilin-agent/commands#commands/execute:result',
97
131
  create: _qilin_agent_commands_commands_execute_result$schema,
132
+ description: 'the settled execution (result + lifecycle pairing id), or `undefined` when syntax or name does not resolve.',
133
+ jsonSchemaError: 'typert tool schema: unsupported undefined value',
98
134
  },
99
135
  sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":361,"column":9},
100
136
  },
101
- {
102
- id: '@qilin-agent/commands#commands/list',
137
+ 'commands/list': {
103
138
  service: 'commands',
104
- namespace: 'commands',
105
- method: 'list',
139
+ description: 'List the effective immutable command descriptors for one agent.',
106
140
  invocation: { kind: 'direct' },
107
141
  scope: {
108
142
  context: 'agent',
@@ -112,12 +146,20 @@ export const TYPERT = {
112
146
  {
113
147
  name: 'agent',
114
148
  wire: 'agentId',
149
+ description: 'exact receiving agent and scoped-layer key.',
115
150
  source: 'lookup',
116
151
  lookup: 'agent',
117
152
  codec: {
118
153
  mode: 'strict',
119
154
  typeSymbol: '@qilin-agent/session/types#SessionId',
120
155
  create: _qilin_agent_commands_commands_list_parameter_0$schema,
156
+ jsonSchema: {"type":"string"},
157
+ },
158
+ strictCodec: {
159
+ mode: 'strict',
160
+ typeSymbol: '@qilin-agent/session/types#SessionId',
161
+ create: _qilin_agent_commands_commands_list_parameter_0_strict$schema,
162
+ jsonSchema: {"type":"string"},
121
163
  },
122
164
  },
123
165
  ],
@@ -125,10 +167,20 @@ export const TYPERT = {
125
167
  mode: 'strict',
126
168
  typeSymbol: '@qilin-agent/commands#commands/list:result',
127
169
  create: _qilin_agent_commands_commands_list_result$schema,
170
+ description: 'name-sorted descriptors after scoped shadowing.',
171
+ jsonSchema: {"type":"array","items":{"type":"object","properties":{"definitionId":{"type":"string","description":"Stable plugin-owned identity; absent for definitions without identity-based client behavior."},"name":{"type":"string","description":"Lowercase command name without the leading slash."},"description":{"type":"string","description":"Human-readable summary used in discovery UI."},"input":{"type":"object","properties":{"hint":{"type":"string","description":"Placeholder shown before the user supplies free-form input."},"attachments":{"type":"boolean","description":"Whether composer attachments may accompany an invocation. Absent or false = the executor rejects an invocation carrying attachments and capable composers refuse the submission before dispatch. A declaring command's handler receives the admitted durable blocks and owns every further grammar decision, including rejecting sub-commands that cannot use them."}},"required":["hint"],"additionalProperties":true,"description":"Optional free-form input hint advertised to capable clients."}},"required":["name","description"],"additionalProperties":true}},
128
172
  },
129
173
  sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":315,"column":3},
130
174
  },
175
+ },
176
+ }, z)
177
+
178
+ export const TYPERT = {
179
+ package: '@qilin-agent/commands',
180
+ face: 'host',
181
+ schemas: [
131
182
  ],
183
+ get invocations() { return $remote.descriptors },
132
184
  model: {
133
185
  "services": [
134
186
  {
@@ -200,6 +252,10 @@ export const TYPERT = {
200
252
  "name": "AgentStatus",
201
253
  "declaration": "export type AgentStatus = 'idle' | 'running';"
202
254
  },
255
+ {
256
+ "name": "AllowedModelRoute",
257
+ "declaration": "export interface AllowedModelRoute {\n readonly provider: string;\n readonly model: string;\n}"
258
+ },
203
259
  {
204
260
  "name": "ApprovalOutcome",
205
261
  "declaration": "export type ApprovalOutcome = 'allowed-once' | 'rejected' | 'cancelled' | 'unavailable';"
@@ -432,6 +488,30 @@ export const TYPERT = {
432
488
  "name": "InboxTarget",
433
489
  "declaration": "export type InboxTarget = 'next-turn' | 'next-step';"
434
490
  },
491
+ {
492
+ "name": "JobId",
493
+ "declaration": "export type JobId = Branded<'JobId'>;"
494
+ },
495
+ {
496
+ "name": "JobOutcome",
497
+ "declaration": "export interface JobOutcome {\n status: 'completed' | 'killed' | 'failed';\n detail?: string;\n result?: string;\n}"
498
+ },
499
+ {
500
+ "name": "JobRegisteredData",
501
+ "declaration": "export interface JobRegisteredData {\n readonly jobId: JobId;\n readonly owner: SessionId;\n readonly kind: string;\n readonly label: string;\n readonly startedAt: number;\n readonly toolCall?: JobToolCall;\n}"
502
+ },
503
+ {
504
+ "name": "JobSettleCause",
505
+ "declaration": "export type JobSettleCause = 'producer' | 'kill' | 'teardown';"
506
+ },
507
+ {
508
+ "name": "JobSettledData",
509
+ "declaration": "export interface JobSettledData extends JobRegisteredData {\n readonly finishedAt: number;\n readonly status: JobOutcome['status'];\n readonly cause: JobSettleCause;\n readonly producerReported: boolean;\n readonly detail?: string;\n}"
510
+ },
511
+ {
512
+ "name": "JobToolCall",
513
+ "declaration": "export interface JobToolCall {\n readonly callId: SessionEventMap['tool/call']['callId'];\n readonly rootCallId: SessionEventMap['tool/call']['callId'];\n}"
514
+ },
435
515
  {
436
516
  "name": "JsonValue",
437
517
  "declaration": "export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue; };"
@@ -468,6 +548,14 @@ export const TYPERT = {
468
548
  "name": "LlmFailure",
469
549
  "declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n readonly offloadImages?: number;\n}"
470
550
  },
551
+ {
552
+ "name": "LlmRetryEventData",
553
+ "declaration": "export type LlmRetryEventData = { retryId: RetryId; turn: number; step: number; provider: string; mode: 'normal'; policyKey: string; retry: number; maxRetries: number; delayMs: number; failure: LlmFailure; } | { retryId: RetryId; turn: number; step: number; provider: string; mode: 'always'; policyKey: string; retry: number; delayMs: number; failure: LlmFailure; };"
554
+ },
555
+ {
556
+ "name": "LlmRetryStartedEventData",
557
+ "declaration": "export interface LlmRetryStartedEventData {\n retryId: RetryId;\n turn: number;\n step: number;\n retry: number;\n}"
558
+ },
471
559
  {
472
560
  "name": "Message",
473
561
  "declaration": "export type Message = MessageRoleMap[keyof MessageRoleMap];"
@@ -510,7 +598,7 @@ export const TYPERT = {
510
598
  },
511
599
  {
512
600
  "name": "MessageSourceMap",
513
- "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'working-directory': { kind: 'working-directory'; };\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; };\n 'sidechat-boundary': { kind: 'sidechat-boundary'; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'team-message': TeamMessageSource;\n goal: GoalMessageSource;\n 'kylin-host-runner': { kind: 'kylin-host-runner'; };\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'compact-checkpoint': CompactionCheckpointSource;\n 'session-reference': SessionReferenceSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n}"
601
+ "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'runtime-context': { kind: 'runtime-context'; } & ContextFormed;\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'working-directory': { kind: 'working-directory'; };\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'tool-registry': { kind: 'tool-registry'; };\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; principal?: Principal; };\n 'sidechat-boundary': { kind: 'sidechat-boundary'; };\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n 'session-reference': SessionReferenceSource;\n 'compact-checkpoint': CompactionCheckpointSource;\n 'team-message': TeamMessageSource;\n webhook: { readonly kind: 'webhook'; readonly provider: string; readonly source: WebhookSourceId; readonly deliveryId: WebhookDeliveryId; readonly ruleId: WebhookRuleId; readonly form: 'notice'; readonly summary: string; };\n goal: GoalMessageSource;\n 'kylin-host-runner': { kind: 'kylin-host-runner'; };\n 'plan-mode': { kind: 'plan-mode'; } & ContextFormed;\n schedule: { kind: 'schedule'; } & ContextFormed;\n}"
514
602
  },
515
603
  {
516
604
  "name": "ModelMessageSource",
@@ -532,6 +620,14 @@ export const TYPERT = {
532
620
  "name": "OptionalSessionSeq",
533
621
  "declaration": "export type OptionalSessionSeq = SessionSeq | null;"
534
622
  },
623
+ {
624
+ "name": "Principal",
625
+ "declaration": "export type Principal = PrincipalMap[keyof PrincipalMap];"
626
+ },
627
+ {
628
+ "name": "PrincipalMap",
629
+ "declaration": "export interface PrincipalMap {\n owner: { readonly kind: 'owner'; };\n}"
630
+ },
535
631
  {
536
632
  "name": "ProviderRequestId",
537
633
  "declaration": "export type ProviderRequestId = Branded<'ProviderRequestId'>;"
@@ -564,6 +660,10 @@ export const TYPERT = {
564
660
  "name": "RequestHeaderReason",
565
661
  "declaration": "export type RequestHeaderReason = 'initial' | 'resume' | 'change' | 'series';"
566
662
  },
663
+ {
664
+ "name": "RetryId",
665
+ "declaration": "export type RetryId = Branded<'RetryId'>;"
666
+ },
567
667
  {
568
668
  "name": "SandboxMode",
569
669
  "declaration": "export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';"
@@ -598,7 +698,7 @@ export const TYPERT = {
598
698
  },
599
699
  {
600
700
  "name": "SessionEventMap",
601
- "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'working-directory/change': { cwd: string; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@qilin-agent/session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'permission/preset': { preset: string; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'subagent/catalog': SubagentCatalogEvent;\n 'feedback/record': FeedbackRecord;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'schedule/change': ScheduleChange;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n}"
701
+ "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'working-directory/change': { cwd: string; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'agent-preset/selected': { agentPreset: string; };\n 'job/registered': JobRegisteredData;\n 'job/settled': JobSettledData;\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@qilin-agent/session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'model/selection': ModelSelection;\n 'permission/preset': { preset: string; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'subagent/catalog': SubagentCatalogEvent;\n 'schedule/change': ScheduleChange;\n 'feedback/record': FeedbackRecord;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n 'llm/retry': LlmRetryEventData;\n 'llm/retry-started': LlmRetryStartedEventData;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'plan/mode': { active: boolean; };\n 'subagent/model-selection-policy': { allowedModels: AllowedModelRoute[]; };\n 'workspace/changes': { turn: number; };\n}"
602
702
  },
603
703
  {
604
704
  "name": "SessionEventType",
@@ -795,6 +895,18 @@ export const TYPERT = {
795
895
  {
796
896
  "name": "UserMessage",
797
897
  "declaration": "export interface UserMessage extends MessageBase {\n readonly role: 'user';\n}"
898
+ },
899
+ {
900
+ "name": "WebhookDeliveryId",
901
+ "declaration": "export type WebhookDeliveryId = Branded<'WebhookDeliveryId'>;"
902
+ },
903
+ {
904
+ "name": "WebhookRuleId",
905
+ "declaration": "export type WebhookRuleId = Branded<'WebhookRuleId'>;"
906
+ },
907
+ {
908
+ "name": "WebhookSourceId",
909
+ "declaration": "export type WebhookSourceId = Branded<'WebhookSourceId'>;"
798
910
  }
799
911
  ]
800
912
  }
@@ -1,7 +1,8 @@
1
1
  /* Generated by @qilin-agent/typert-generator from the Host FaceModel — do not edit. */
2
2
  import type {
3
3
  RemoteResult,
4
- TypertRemoteContribution,
4
+ TypertRemoteInfo,
5
+ TypertRemoteMethod,
5
6
  } from '@qilin-agent/typert-protocol'
6
7
  import type { CommandDescriptor, CommandExecution, CommandSubmitAttachment } from '@qilin-agent/commands/types'
7
8
  import type { SessionId } from '@qilin-agent/session/types'
@@ -24,6 +25,9 @@ declare module '@qilin-agent/typert-protocol' {
24
25
  }
25
26
  }
26
27
 
27
- export declare const TYPERT_REMOTE: TypertRemoteContribution
28
+ export declare const TYPERT_REMOTE: TypertRemoteInfo<{
29
+ readonly 'commands/execute': TypertRemoteMethod<{ readonly 'agentId': SessionId; readonly 'line': string; readonly 'submittedAttachments': readonly CommandSubmitAttachment[] }, CommandExecution | undefined>
30
+ readonly 'commands/list': TypertRemoteMethod<{ readonly 'agentId': SessionId }, readonly CommandDescriptor[]>
31
+ }>
28
32
  export default TYPERT_REMOTE
29
33
  //# sourceMappingURL=typert.remote-client.d.ts.map
@@ -1,54 +1,69 @@
1
1
  /* Generated by @qilin-agent/typert-generator from the Host FaceModel — do not edit. */
2
2
  import { z } from 'zod'
3
3
 
4
+ import { createTypertRemoteInfo } from '@qilin-agent/typert-protocol/remote-info'
5
+
4
6
  let _qilin_agent_commands_commands_execute_parameter_0$schema$value
5
- const _qilin_agent_commands_commands_execute_parameter_0$schema = () => (_qilin_agent_commands_commands_execute_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
7
+ const _qilin_agent_commands_commands_execute_parameter_0$schema = () => (_qilin_agent_commands_commands_execute_parameter_0$schema$value ??= z.string())
6
8
  let _qilin_agent_commands_commands_execute_parameter_1$schema$value
7
9
  const _qilin_agent_commands_commands_execute_parameter_1$schema = () => (_qilin_agent_commands_commands_execute_parameter_1$schema$value ??= z.string())
8
10
  let _qilin_agent_commands_commands_execute_parameter_2$schema$value
9
- const _qilin_agent_commands_commands_execute_parameter_2$schema = () => (_qilin_agent_commands_commands_execute_parameter_2$schema$value ??= z.array(z.union([z.intersection(z.object({
11
+ const _qilin_agent_commands_commands_execute_parameter_2$schema = () => (_qilin_agent_commands_commands_execute_parameter_2$schema$value ??= z.array(z.union([z.object({
10
12
  'type': z.literal("image").readonly(),
13
+ 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]).describe('Declared media type, verified against the decoded bytes during admission.'),
14
+ 'data': z.string().describe('Canonical base64 encoding of the image bytes.'),
15
+ 'name': z.string().optional().describe('Optional display name; it is never interpreted as a path.'),
11
16
  }), z.object({
12
- 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]),
13
- 'data': z.string(),
14
- 'name': z.string().optional(),
15
- })), z.object({
16
17
  'type': z.literal("file").readonly(),
17
18
  'receiptId': z.string().readonly(),
18
19
  })])))
19
20
  let _qilin_agent_commands_commands_execute_result$schema$value
20
21
  const _qilin_agent_commands_commands_execute_result$schema = () => (_qilin_agent_commands_commands_execute_result$schema$value ??= z.union([z.undefined(), z.object({
21
- 'commandId': z.intersection(z.string(), z.unknown()).readonly(),
22
+ 'commandId': z.string().readonly().describe('Pairing id carried by this execution\'s lifecycle events.'),
22
23
  'result': z.union([z.object({
23
24
  'kind': z.literal("success").readonly(),
24
25
  'text': z.string().readonly().optional(),
25
- 'sourceEventSeq': z.intersection(z.number(), z.unknown()).readonly().optional(),
26
+ 'sourceEventSeq': z.number().readonly().optional().describe('Earlier authoritative domain event that owns a richer presentation.'),
26
27
  }), z.object({
27
28
  'kind': z.literal("error").readonly(),
28
29
  'text': z.string().readonly(),
29
- })]).readonly(),
30
+ })]).readonly().describe('The handler\'s normalized outcome.'),
30
31
  })]))
31
32
  let _qilin_agent_commands_commands_list_parameter_0$schema$value
32
- const _qilin_agent_commands_commands_list_parameter_0$schema = () => (_qilin_agent_commands_commands_list_parameter_0$schema$value ??= z.intersection(z.string(), z.unknown()))
33
+ const _qilin_agent_commands_commands_list_parameter_0$schema = () => (_qilin_agent_commands_commands_list_parameter_0$schema$value ??= z.string())
33
34
  let _qilin_agent_commands_commands_list_result$schema$value
34
35
  const _qilin_agent_commands_commands_list_result$schema = () => (_qilin_agent_commands_commands_list_result$schema$value ??= z.array(z.object({
35
- 'definitionId': z.intersection(z.string(), z.unknown()).readonly().optional(),
36
- 'name': z.string().readonly(),
37
- 'description': z.string().readonly(),
36
+ 'definitionId': z.string().readonly().optional().describe('Stable plugin-owned identity; absent for definitions without identity-based client behavior.'),
37
+ 'name': z.string().readonly().describe('Lowercase command name without the leading slash.'),
38
+ 'description': z.string().readonly().describe('Human-readable summary used in discovery UI.'),
38
39
  'input': z.object({
39
- 'hint': z.string().readonly(),
40
- 'attachments': z.boolean().readonly().optional(),
41
- }).readonly().optional(),
40
+ 'hint': z.string().readonly().describe('Placeholder shown before the user supplies free-form input.'),
41
+ 'attachments': z.boolean().readonly().optional().describe('Whether composer attachments may accompany an invocation. Absent or false = the executor rejects an invocation carrying attachments and capable composers refuse the submission before dispatch. A declaring command\'s handler receives the admitted durable blocks and owns every further grammar decision, including rejecting sub-commands that cannot use them.'),
42
+ }).readonly().optional().describe('Optional free-form input hint advertised to capable clients.'),
42
43
  })))
44
+ let _qilin_agent_commands_commands_execute_parameter_0_strict$schema$value
45
+ const _qilin_agent_commands_commands_execute_parameter_0_strict$schema = () => (_qilin_agent_commands_commands_execute_parameter_0_strict$schema$value ??= z.string())
46
+ let _qilin_agent_commands_commands_execute_parameter_1_strict$schema$value
47
+ const _qilin_agent_commands_commands_execute_parameter_1_strict$schema = () => (_qilin_agent_commands_commands_execute_parameter_1_strict$schema$value ??= z.string())
48
+ let _qilin_agent_commands_commands_execute_parameter_2_strict$schema$value
49
+ const _qilin_agent_commands_commands_execute_parameter_2_strict$schema = () => (_qilin_agent_commands_commands_execute_parameter_2_strict$schema$value ??= z.array(z.union([z.strictObject({
50
+ 'type': z.literal("image").readonly(),
51
+ 'mediaType': z.union([z.literal("image/png"), z.literal("image/jpeg"), z.literal("image/webp"), z.literal("image/gif")]).describe('Declared media type, verified against the decoded bytes during admission.'),
52
+ 'data': z.string().describe('Canonical base64 encoding of the image bytes.'),
53
+ 'name': z.string().optional().describe('Optional display name; it is never interpreted as a path.'),
54
+ }), z.strictObject({
55
+ 'type': z.literal("file").readonly(),
56
+ 'receiptId': z.string().readonly(),
57
+ })])))
58
+ let _qilin_agent_commands_commands_list_parameter_0_strict$schema$value
59
+ const _qilin_agent_commands_commands_list_parameter_0_strict$schema = () => (_qilin_agent_commands_commands_list_parameter_0_strict$schema$value ??= z.string())
43
60
 
44
- export const TYPERT_REMOTE = {
61
+ export const TYPERT_REMOTE = createTypertRemoteInfo({
45
62
  package: '@qilin-agent/commands',
46
- descriptors: [
47
- {
48
- id: '@qilin-agent/commands#commands/execute',
63
+ methods: {
64
+ 'commands/execute': {
49
65
  service: 'commands',
50
- namespace: 'commands',
51
- method: 'execute',
66
+ description: 'Parse and execute a known command without sending it to the model. A resolved command\'s lifecycle is logged: `command/run` is appended before the handler is invoked and `command/done` after settlement (a thrown or aborted handler settles as `kind: \'error\'`). Both are direct log-only appends — no turn wraps them, and persistence drains them at ordinary checkpoints. Admission misses (syntax or unknown name) log nothing — they never entered a handler. A `command/run` append failure fails the execution loud; a `command/done` append failure on the handler-failure path is contained so the handler\'s own error stays the reported failure. Attachment admission is enforced here, not in the composer: attachments sent to a command that does not declare `input.attachments`, an absent attachment store, and an exceeded image limit each settle as an error result before the handler runs. Validation rejection starts no attachment writes; a storage failure can leave only unreachable content-addressed objects for deferred collection.',
52
67
  invocation: { kind: 'direct' },
53
68
  scope: {
54
69
  context: 'agent',
@@ -58,32 +73,54 @@ export const TYPERT_REMOTE = {
58
73
  {
59
74
  name: 'agent',
60
75
  wire: 'agentId',
76
+ description: 'exact receiving agent.',
61
77
  source: 'lookup',
62
78
  lookup: 'agent',
63
79
  codec: {
64
80
  mode: 'strict',
65
81
  typeSymbol: '@qilin-agent/session/types#SessionId',
66
82
  create: _qilin_agent_commands_commands_execute_parameter_0$schema,
83
+ jsonSchema: {"type":"string"},
84
+ },
85
+ strictCodec: {
86
+ mode: 'strict',
87
+ typeSymbol: '@qilin-agent/session/types#SessionId',
88
+ create: _qilin_agent_commands_commands_execute_parameter_0_strict$schema,
89
+ jsonSchema: {"type":"string"},
67
90
  },
68
91
  },
69
92
  {
70
93
  name: 'line',
71
- wire: 'line',
94
+ description: 'complete slash-command line.',
72
95
  source: 'json',
73
96
  codec: {
74
97
  mode: 'strict',
75
98
  typeSymbol: '@qilin-agent/commands#commands/execute:line',
76
99
  create: _qilin_agent_commands_commands_execute_parameter_1$schema,
100
+ jsonSchema: {"type":"string"},
101
+ },
102
+ strictCodec: {
103
+ mode: 'strict',
104
+ typeSymbol: '@qilin-agent/commands#commands/execute:line',
105
+ create: _qilin_agent_commands_commands_execute_parameter_1_strict$schema,
106
+ jsonSchema: {"type":"string"},
77
107
  },
78
108
  },
79
109
  {
80
110
  name: 'submittedAttachments',
81
- wire: 'submittedAttachments',
111
+ description: 'encoded images and staged file receipts accompanying the line, in submission order; empty for a plain invocation.',
82
112
  source: 'json',
83
113
  codec: {
84
114
  mode: 'strict',
85
115
  typeSymbol: '@qilin-agent/commands#commands/execute:submittedAttachments',
86
116
  create: _qilin_agent_commands_commands_execute_parameter_2$schema,
117
+ jsonSchema: {"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"image"},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/webp","image/gif"],"description":"Declared media type, verified against the decoded bytes during admission."},"data":{"type":"string","description":"Canonical base64 encoding of the image bytes."},"name":{"type":"string","description":"Optional display name; it is never interpreted as a path."}},"required":["type","mediaType","data"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","const":"file"},"receiptId":{"type":"string"}},"required":["type","receiptId"],"additionalProperties":true}]}},
118
+ },
119
+ strictCodec: {
120
+ mode: 'strict',
121
+ typeSymbol: '@qilin-agent/commands#commands/execute:submittedAttachments',
122
+ create: _qilin_agent_commands_commands_execute_parameter_2_strict$schema,
123
+ jsonSchema: {"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"image"},"mediaType":{"type":"string","enum":["image/png","image/jpeg","image/webp","image/gif"],"description":"Declared media type, verified against the decoded bytes during admission."},"data":{"type":"string","description":"Canonical base64 encoding of the image bytes."},"name":{"type":"string","description":"Optional display name; it is never interpreted as a path."}},"required":["type","mediaType","data"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"file"},"receiptId":{"type":"string"}},"required":["type","receiptId"],"additionalProperties":false}]}},
87
124
  },
88
125
  },
89
126
  ],
@@ -92,14 +129,14 @@ export const TYPERT_REMOTE = {
92
129
  mode: 'strict',
93
130
  typeSymbol: '@qilin-agent/commands#commands/execute:result',
94
131
  create: _qilin_agent_commands_commands_execute_result$schema,
132
+ description: 'the settled execution (result + lifecycle pairing id), or `undefined` when syntax or name does not resolve.',
133
+ jsonSchemaError: 'typert tool schema: unsupported undefined value',
95
134
  },
96
135
  sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":361,"column":9},
97
136
  },
98
- {
99
- id: '@qilin-agent/commands#commands/list',
137
+ 'commands/list': {
100
138
  service: 'commands',
101
- namespace: 'commands',
102
- method: 'list',
139
+ description: 'List the effective immutable command descriptors for one agent.',
103
140
  invocation: { kind: 'direct' },
104
141
  scope: {
105
142
  context: 'agent',
@@ -109,12 +146,20 @@ export const TYPERT_REMOTE = {
109
146
  {
110
147
  name: 'agent',
111
148
  wire: 'agentId',
149
+ description: 'exact receiving agent and scoped-layer key.',
112
150
  source: 'lookup',
113
151
  lookup: 'agent',
114
152
  codec: {
115
153
  mode: 'strict',
116
154
  typeSymbol: '@qilin-agent/session/types#SessionId',
117
155
  create: _qilin_agent_commands_commands_list_parameter_0$schema,
156
+ jsonSchema: {"type":"string"},
157
+ },
158
+ strictCodec: {
159
+ mode: 'strict',
160
+ typeSymbol: '@qilin-agent/session/types#SessionId',
161
+ create: _qilin_agent_commands_commands_list_parameter_0_strict$schema,
162
+ jsonSchema: {"type":"string"},
118
163
  },
119
164
  },
120
165
  ],
@@ -122,10 +167,12 @@ export const TYPERT_REMOTE = {
122
167
  mode: 'strict',
123
168
  typeSymbol: '@qilin-agent/commands#commands/list:result',
124
169
  create: _qilin_agent_commands_commands_list_result$schema,
170
+ description: 'name-sorted descriptors after scoped shadowing.',
171
+ jsonSchema: {"type":"array","items":{"type":"object","properties":{"definitionId":{"type":"string","description":"Stable plugin-owned identity; absent for definitions without identity-based client behavior."},"name":{"type":"string","description":"Lowercase command name without the leading slash."},"description":{"type":"string","description":"Human-readable summary used in discovery UI."},"input":{"type":"object","properties":{"hint":{"type":"string","description":"Placeholder shown before the user supplies free-form input."},"attachments":{"type":"boolean","description":"Whether composer attachments may accompany an invocation. Absent or false = the executor rejects an invocation carrying attachments and capable composers refuse the submission before dispatch. A declaring command's handler receives the admitted durable blocks and owns every further grammar decision, including rejecting sub-commands that cannot use them."}},"required":["hint"],"additionalProperties":true,"description":"Optional free-form input hint advertised to capable clients."}},"required":["name","description"],"additionalProperties":true}},
125
172
  },
126
173
  sourceLocation: {"file":"packages/interaction/commands/src/index.ts","line":315,"column":3},
127
174
  },
128
- ],
129
- }
175
+ },
176
+ }, z)
130
177
 
131
178
  export default TYPERT_REMOTE
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qilin-agent/commands",
3
3
  "description": "Plugin-owned human command registry for QiLin UIs",
4
- "version": "3.1.5",
4
+ "version": "3.1.7",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -51,27 +51,27 @@
51
51
  ],
52
52
  "license": "MIT",
53
53
  "peerDependencies": {
54
- "@qilin-agent/attachment": "3.1.5",
55
- "@qilin-agent/llm": "3.1.5",
56
- "@qilin-agent/brand": "3.1.5",
57
- "@qilin-agent/agent": "3.1.5",
58
- "@qilin-agent/scope": "3.1.5",
59
- "@qilin-agent/typert-protocol": "3.1.5",
60
- "@qilin-agent/session": "3.1.5",
61
- "@qilin-agent/kylin": "~4.0.3"
54
+ "@qilin-agent/attachment": "3.1.7",
55
+ "@qilin-agent/agent": "3.1.7",
56
+ "@qilin-agent/brand": "3.1.7",
57
+ "@qilin-agent/session": "3.1.7",
58
+ "@qilin-agent/scope": "3.1.7",
59
+ "@qilin-agent/typert-protocol": "3.1.7",
60
+ "@qilin-agent/llm": "3.1.7",
61
+ "@qilin-agent/kylin": "~4.0.5"
62
62
  },
63
63
  "dependencies": {
64
64
  "zod": "^4.4.3",
65
- "@qilin-agent/util-crypto": "3.1.5"
65
+ "@qilin-agent/util-crypto": "3.1.7"
66
66
  },
67
67
  "devDependencies": {
68
- "@qilin-agent/agent": "3.1.5",
69
- "@qilin-agent/brand": "3.1.5",
70
- "@qilin-agent/attachment": "3.1.5",
71
- "@qilin-agent/scope": "3.1.5",
72
- "@qilin-agent/llm": "3.1.5",
73
- "@qilin-agent/session": "3.1.5",
74
- "@qilin-agent/kylin": "~4.0.3",
75
- "@qilin-agent/typert-protocol": "3.1.5"
68
+ "@qilin-agent/agent": "3.1.7",
69
+ "@qilin-agent/brand": "3.1.7",
70
+ "@qilin-agent/llm": "3.1.7",
71
+ "@qilin-agent/attachment": "3.1.7",
72
+ "@qilin-agent/scope": "3.1.7",
73
+ "@qilin-agent/typert-protocol": "3.1.7",
74
+ "@qilin-agent/session": "3.1.7",
75
+ "@qilin-agent/kylin": "~4.0.5"
76
76
  }
77
77
  }