@themoltnet/agent-daemon 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +5 -0
  2. package/dist/main.js +563 -462
  3. package/package.json +6 -6
package/dist/main.js CHANGED
@@ -4190,6 +4190,60 @@ var CuratePackOutput = Type$2.Object({
4190
4190
  additionalProperties: false
4191
4191
  });
4192
4192
  //#endregion
4193
+ //#region ../../libs/tasks/src/task-types/freeform.ts
4194
+ var FREEFORM_TYPE = "freeform";
4195
+ var FreeformExecutionOptions = Type$2.Object({ workspace: Type$2.Optional(Type$2.Union([
4196
+ Type$2.Literal("none"),
4197
+ Type$2.Literal("shared_mount"),
4198
+ Type$2.Literal("dedicated_worktree")
4199
+ ])) }, {
4200
+ $id: "FreeformExecutionOptions",
4201
+ additionalProperties: false
4202
+ });
4203
+ var FreeformTaskTypeProposal = Type$2.Object({
4204
+ name: Type$2.String({ minLength: 1 }),
4205
+ rationale: Type$2.String({ minLength: 1 }),
4206
+ inputShape: Type$2.Optional(Type$2.Record(Type$2.String(), Type$2.Unknown())),
4207
+ outputShape: Type$2.Optional(Type$2.Record(Type$2.String(), Type$2.Unknown()))
4208
+ }, {
4209
+ $id: "FreeformTaskTypeProposal",
4210
+ additionalProperties: false
4211
+ });
4212
+ var FreeformInput = Type$2.Object({
4213
+ title: Type$2.Optional(Type$2.String({ minLength: 1 })),
4214
+ brief: Type$2.String({ minLength: 1 }),
4215
+ expectedOutput: Type$2.Optional(Type$2.String({ minLength: 1 })),
4216
+ constraints: Type$2.Optional(Type$2.Array(Type$2.String({ minLength: 1 }), { maxItems: 20 })),
4217
+ suggestedTaskType: Type$2.Optional(Type$2.String({ minLength: 1 })),
4218
+ successCriteria: Type$2.Optional(SuccessCriteria),
4219
+ context: Type$2.Optional(TaskContext),
4220
+ execution: Type$2.Optional(FreeformExecutionOptions)
4221
+ }, {
4222
+ $id: "FreeformInput",
4223
+ additionalProperties: false
4224
+ });
4225
+ var FreeformArtifact = Type$2.Object({
4226
+ kind: Type$2.String({ minLength: 1 }),
4227
+ title: Type$2.String({ minLength: 1 }),
4228
+ description: Type$2.Optional(Type$2.String({ minLength: 1 })),
4229
+ url: Type$2.Optional(Type$2.String({ minLength: 1 })),
4230
+ path: Type$2.Optional(Type$2.String({ minLength: 1 })),
4231
+ body: Type$2.Optional(Type$2.String({ maxLength: 65536 }))
4232
+ }, {
4233
+ $id: "FreeformArtifact",
4234
+ additionalProperties: false
4235
+ });
4236
+ var FreeformOutput = Type$2.Object({
4237
+ summary: Type$2.String({ minLength: 1 }),
4238
+ artifacts: Type$2.Optional(Type$2.Array(FreeformArtifact, { maxItems: 20 })),
4239
+ proposedTaskType: Type$2.Optional(FreeformTaskTypeProposal),
4240
+ diaryEntryIds: Type$2.Optional(Type$2.Array(Type$2.String({ format: "uuid" }))),
4241
+ verification: Type$2.Optional(VerificationRecord)
4242
+ }, {
4243
+ $id: "FreeformOutput",
4244
+ additionalProperties: false
4245
+ });
4246
+ //#endregion
4193
4247
  //#region ../../libs/tasks/src/task-types/fulfill-brief.ts
4194
4248
  /**
4195
4249
  * `fulfill_brief` — produce a signed change against a coding brief.
@@ -4748,6 +4802,19 @@ function requireVerificationWhenCriteriaPresent(output, input) {
4748
4802
  * / claiming a task.
4749
4803
  */
4750
4804
  var BUILT_IN_TASK_TYPES = {
4805
+ [FREEFORM_TYPE]: {
4806
+ name: FREEFORM_TYPE,
4807
+ inputSchema: FreeformInput,
4808
+ outputSchema: FreeformOutput,
4809
+ outputKind: "artifact",
4810
+ resumable: true,
4811
+ workspaceMode: "shared_mount",
4812
+ workspaceScope: "session",
4813
+ sessionScope: "correlation",
4814
+ acceptsInputWorkspaceOverride: true,
4815
+ requiresReferences: false,
4816
+ validateOutput: requireVerificationWhenCriteriaPresent
4817
+ },
4751
4818
  [FULFILL_BRIEF_TYPE]: {
4752
4819
  name: FULFILL_BRIEF_TYPE,
4753
4820
  inputSchema: FulfillBriefInput,
@@ -4825,6 +4892,7 @@ var BUILT_IN_TASK_TYPES = {
4825
4892
  resumable: true,
4826
4893
  workspaceScope: "session",
4827
4894
  sessionScope: "custom",
4895
+ acceptsInputWorkspaceOverride: true,
4828
4896
  requiresReferences: false,
4829
4897
  validateOutput: validateRunEvalOutput
4830
4898
  },
@@ -5784,6 +5852,13 @@ function taskTypeSessionScope(taskType) {
5784
5852
  return getTaskTypeEntry(taskType)?.sessionScope ?? "none";
5785
5853
  }
5786
5854
  /**
5855
+ * Whether a task type accepts a proposer-supplied workspace mode via
5856
+ * `task.input.execution.workspace`. Unknown task types default to false.
5857
+ */
5858
+ function taskTypeAcceptsInputWorkspaceOverride(taskType) {
5859
+ return getTaskTypeEntry(taskType)?.acceptsInputWorkspaceOverride ?? false;
5860
+ }
5861
+ /**
5787
5862
  * Resolve the daemon-relevant execution policy declared by a task type.
5788
5863
  *
5789
5864
  * This is the single read path for "may this task reuse a warm session?" and
@@ -5796,6 +5871,7 @@ function getTaskExecutionPolicy(taskType) {
5796
5871
  workspaceMode: taskTypeWorkspaceMode(taskType),
5797
5872
  workspaceScope: taskTypeWorkspaceScope(taskType),
5798
5873
  sessionScope: taskTypeSessionScope(taskType),
5874
+ acceptsInputWorkspaceOverride: taskTypeAcceptsInputWorkspaceOverride(taskType),
5799
5875
  usesSubagents: taskTypeUsesSubagents(taskType)
5800
5876
  };
5801
5877
  }
@@ -6802,6 +6878,95 @@ function buildCuratePackUserPrompt(input, ctx) {
6802
6878
  ]);
6803
6879
  }
6804
6880
  //#endregion
6881
+ //#region ../../libs/agent-runtime/src/prompts/freeform.ts
6882
+ function buildFreeformUserPrompt(input, ctx) {
6883
+ const header = [
6884
+ "# Freeform Task Agent",
6885
+ "",
6886
+ "You are handling an exploratory MoltNet task that does not yet have a",
6887
+ "more specific execution contract. Treat the brief as the source of truth,",
6888
+ "use judgment, and keep the result useful enough for a human or another",
6889
+ "agent to continue from it.",
6890
+ "",
6891
+ `Task id: \`${ctx.taskId}\``
6892
+ ].join("\n");
6893
+ const expectedOutput = input.expectedOutput ?? "";
6894
+ const constraints = input.constraints?.length ? input.constraints.map((constraint) => `- ${constraint}`).join("\n") : "";
6895
+ const suggestedTaskType = input.suggestedTaskType ? [`The proposer suggested task type \`${input.suggestedTaskType}\`.`, "Use it as a hint, not as a contract."].join("\n") : "";
6896
+ const workflow = [
6897
+ "1. Clarify the real objective from the brief before acting.",
6898
+ "2. Gather enough context to avoid guessing.",
6899
+ "3. Complete the requested work when it is safe and bounded.",
6900
+ "4. If the request reveals a recurring task shape, include a",
6901
+ " `proposedTaskType` in the final output with a concise rationale."
6902
+ ].join("\n");
6903
+ return assembleTaskPrompt("freeform", [
6904
+ {
6905
+ id: "freeform.header",
6906
+ source: "header",
6907
+ body: header
6908
+ },
6909
+ {
6910
+ id: "freeform.title",
6911
+ source: "task_input",
6912
+ header: "Title",
6913
+ body: input.title ?? ""
6914
+ },
6915
+ {
6916
+ id: "freeform.brief",
6917
+ source: "task_input",
6918
+ header: "Brief",
6919
+ body: input.brief
6920
+ },
6921
+ {
6922
+ id: "freeform.expected_output",
6923
+ source: "task_input",
6924
+ header: "Expected Output",
6925
+ body: expectedOutput
6926
+ },
6927
+ {
6928
+ id: "freeform.constraints",
6929
+ source: "task_input",
6930
+ header: "Constraints",
6931
+ body: constraints
6932
+ },
6933
+ {
6934
+ id: "freeform.suggested_task_type",
6935
+ source: "task_input",
6936
+ header: "Suggested Task Type",
6937
+ body: suggestedTaskType
6938
+ },
6939
+ {
6940
+ id: "freeform.workflow",
6941
+ source: "static",
6942
+ header: "Workflow",
6943
+ body: workflow
6944
+ },
6945
+ {
6946
+ id: "freeform.verification",
6947
+ source: "verification",
6948
+ body: buildSelfVerificationBlock(ctx.taskId)
6949
+ },
6950
+ {
6951
+ id: "freeform.final_output",
6952
+ source: "final_output",
6953
+ body: buildFinalOutputBlock({
6954
+ taskType: "freeform",
6955
+ outputSchemaName: "FreeformOutput",
6956
+ shapeSketch: [
6957
+ "{",
6958
+ " \"summary\": \"<2-5 sentence result>\",",
6959
+ " \"artifacts\": [{ \"kind\": \"...\", \"title\": \"...\", \"description\": \"...\", \"body\": \"<inline content up to 64 KiB; preferred for textual output so it persists with the task>\", \"url\": \"...\", \"path\": \"<worktree-ephemeral; not persisted after completion>\" }],",
6960
+ " \"proposedTaskType\": { \"name\": \"...\", \"rationale\": \"...\", \"inputShape\": {}, \"outputShape\": {} },",
6961
+ " \"diaryEntryIds\": [\"...\"],",
6962
+ " \"verification\": <required iff input.successCriteria; see Self-verification>",
6963
+ "}"
6964
+ ].join("\n")
6965
+ })
6966
+ }
6967
+ ]);
6968
+ }
6969
+ //#endregion
6805
6970
  //#region ../../libs/agent-runtime/src/prompts/fulfill-brief.ts
6806
6971
  /**
6807
6972
  * Build the first user-message prompt for a `fulfill_brief` task.
@@ -6851,7 +7016,11 @@ function buildFulfillBriefUserPrompt(input, ctx) {
6851
7016
  "5. For every commit, create a signed diary entry first via",
6852
7017
  " `moltnet_create_entry` and embed its id in the commit trailer",
6853
7018
  " `MoltNet-Diary: <id>` (per the runtime instructor).",
6854
- "6. Push the branch and open a PR."
7019
+ "6. Push the branch and open a PR — run `git push` and `gh pr create`",
7020
+ " IN the VM with your normal `bash` tool (use the",
7021
+ " `GH_TOKEN=$(moltnet github token …) gh …` form from the runtime",
7022
+ " instructor). Do NOT use `moltnet_host_exec` for this; it needs human",
7023
+ " approval that is unavailable in a headless run."
6855
7024
  ].join("\n");
6856
7025
  return assembleTaskPrompt("fulfill_brief", [
6857
7026
  {
@@ -7551,6 +7720,12 @@ function buildRunEvalUserPrompt(input, ctx) {
7551
7720
  */
7552
7721
  function buildTaskUserPrompt(task, ctx) {
7553
7722
  switch (task.taskType) {
7723
+ case FREEFORM_TYPE:
7724
+ if (!Check(FreeformInput, task.input)) {
7725
+ const errors = [...Errors(FreeformInput, task.input)];
7726
+ throw new Error(`freeform input failed validation: ${JSON.stringify(errors.slice(0, 3))}`);
7727
+ }
7728
+ return buildFreeformUserPrompt(task.input, { taskId: ctx.taskId });
7554
7729
  case FULFILL_BRIEF_TYPE:
7555
7730
  if (!Check(FulfillBriefInput, task.input)) {
7556
7731
  const errors = [...Errors(FulfillBriefInput, task.input)];
@@ -8636,16 +8811,16 @@ var client = createClient(createConfig({ baseUrl: "https://api.themolt.net" }));
8636
8811
  //#endregion
8637
8812
  //#region ../../libs/api-client/src/generated/sdk.gen.ts
8638
8813
  /**
8639
- * Shallow liveness probe.
8814
+ * MoltNet network discovery document (RFC 8615 well-known URI). Returns network info, endpoints, capabilities, quickstart steps, and philosophy. No authentication required.
8640
8815
  */
8641
- var getHealth = (options) => (options?.client ?? client).get({
8642
- url: "/health",
8816
+ var getNetworkInfo = (options) => (options?.client ?? client).get({
8817
+ url: "/.well-known/moltnet.json",
8643
8818
  ...options
8644
8819
  });
8645
8820
  /**
8646
- * List the authenticated agent's diaries.
8821
+ * Get the authenticated agent identity (requires bearer token).
8647
8822
  */
8648
- var listDiaries = (options) => (options?.client ?? client).get({
8823
+ var getWhoami = (options) => (options?.client ?? client).get({
8649
8824
  security: [
8650
8825
  {
8651
8826
  scheme: "bearer",
@@ -8661,29 +8836,21 @@ var listDiaries = (options) => (options?.client ?? client).get({
8661
8836
  type: "apiKey"
8662
8837
  }
8663
8838
  ],
8664
- url: "/diaries",
8839
+ url: "/agents/whoami",
8665
8840
  ...options
8666
8841
  });
8667
8842
  /**
8668
- * Create a new diary.
8843
+ * Get an agent's public profile by key fingerprint (A1B2-C3D4-E5F6-G7H8).
8669
8844
  */
8670
- var createDiary = (options) => (options.client ?? client).post({
8671
- security: [
8672
- {
8673
- scheme: "bearer",
8674
- type: "http"
8675
- },
8676
- {
8677
- name: "X-Moltnet-Session-Token",
8678
- type: "apiKey"
8679
- },
8680
- {
8681
- in: "cookie",
8682
- name: "ory_kratos_session",
8683
- type: "apiKey"
8684
- }
8685
- ],
8686
- url: "/diaries",
8845
+ var getAgentProfile = (options) => (options.client ?? client).get({
8846
+ url: "/agents/{fingerprint}",
8847
+ ...options
8848
+ });
8849
+ /**
8850
+ * Verify a signature belongs to the specified agent.
8851
+ */
8852
+ var verifyAgentSignature = (options) => (options.client ?? client).post({
8853
+ url: "/agents/{fingerprint}/verify",
8687
8854
  ...options,
8688
8855
  headers: {
8689
8856
  "Content-Type": "application/json",
@@ -8691,9 +8858,9 @@ var createDiary = (options) => (options.client ?? client).post({
8691
8858
  }
8692
8859
  });
8693
8860
  /**
8694
- * Delete a diary and cascade-delete its entries.
8861
+ * Rotate the OAuth2 client secret. Returns the new clientId/clientSecret pair. The old secret is invalidated immediately.
8695
8862
  */
8696
- var deleteDiary = (options) => (options.client ?? client).delete({
8863
+ var rotateClientSecret = (options) => (options?.client ?? client).post({
8697
8864
  security: [
8698
8865
  {
8699
8866
  scheme: "bearer",
@@ -8709,13 +8876,13 @@ var deleteDiary = (options) => (options.client ?? client).delete({
8709
8876
  type: "apiKey"
8710
8877
  }
8711
8878
  ],
8712
- url: "/diaries/{id}",
8879
+ url: "/auth/rotate-secret",
8713
8880
  ...options
8714
8881
  });
8715
8882
  /**
8716
- * Get a diary by ID.
8883
+ * Get the authenticated agent's cryptographic identity (keys, fingerprint).
8717
8884
  */
8718
- var getDiary = (options) => (options.client ?? client).get({
8885
+ var getCryptoIdentity = (options) => (options?.client ?? client).get({
8719
8886
  security: [
8720
8887
  {
8721
8888
  scheme: "bearer",
@@ -8731,13 +8898,13 @@ var getDiary = (options) => (options.client ?? client).get({
8731
8898
  type: "apiKey"
8732
8899
  }
8733
8900
  ],
8734
- url: "/diaries/{id}",
8901
+ url: "/crypto/identity",
8735
8902
  ...options
8736
8903
  });
8737
8904
  /**
8738
- * Update diary name or visibility.
8905
+ * List signing requests for the authenticated agent.
8739
8906
  */
8740
- var updateDiary = (options) => (options.client ?? client).patch({
8907
+ var listSigningRequests = (options) => (options?.client ?? client).get({
8741
8908
  security: [
8742
8909
  {
8743
8910
  scheme: "bearer",
@@ -8753,17 +8920,13 @@ var updateDiary = (options) => (options.client ?? client).patch({
8753
8920
  type: "apiKey"
8754
8921
  }
8755
8922
  ],
8756
- url: "/diaries/{id}",
8757
- ...options,
8758
- headers: {
8759
- "Content-Type": "application/json",
8760
- ...options.headers
8761
- }
8923
+ url: "/crypto/signing-requests",
8924
+ ...options
8762
8925
  });
8763
8926
  /**
8764
- * Revoke a writer or manager grant from a diary.
8927
+ * Create a signing request. The server generates a nonce and starts a DBOS workflow that waits for the agent to submit a signature.
8765
8928
  */
8766
- var revokeDiaryGrant = (options) => (options.client ?? client).delete({
8929
+ var createSigningRequest = (options) => (options.client ?? client).post({
8767
8930
  security: [
8768
8931
  {
8769
8932
  scheme: "bearer",
@@ -8779,7 +8942,7 @@ var revokeDiaryGrant = (options) => (options.client ?? client).delete({
8779
8942
  type: "apiKey"
8780
8943
  }
8781
8944
  ],
8782
- url: "/diaries/{id}/grants",
8945
+ url: "/crypto/signing-requests",
8783
8946
  ...options,
8784
8947
  headers: {
8785
8948
  "Content-Type": "application/json",
@@ -8787,9 +8950,9 @@ var revokeDiaryGrant = (options) => (options.client ?? client).delete({
8787
8950
  }
8788
8951
  });
8789
8952
  /**
8790
- * List all per-diary grants (writers and managers).
8953
+ * Get a specific signing request by ID.
8791
8954
  */
8792
- var listDiaryGrants = (options) => (options.client ?? client).get({
8955
+ var getSigningRequest = (options) => (options.client ?? client).get({
8793
8956
  security: [
8794
8957
  {
8795
8958
  scheme: "bearer",
@@ -8805,13 +8968,13 @@ var listDiaryGrants = (options) => (options.client ?? client).get({
8805
8968
  type: "apiKey"
8806
8969
  }
8807
8970
  ],
8808
- url: "/diaries/{id}/grants",
8971
+ url: "/crypto/signing-requests/{id}",
8809
8972
  ...options
8810
8973
  });
8811
8974
  /**
8812
- * Grant writer or manager access to a diary for an agent, human, or group.
8975
+ * Submit a signature for a signing request. The DBOS workflow verifies the signature and updates the request status.
8813
8976
  */
8814
- var createDiaryGrant = (options) => (options.client ?? client).post({
8977
+ var submitSignature = (options) => (options.client ?? client).post({
8815
8978
  security: [
8816
8979
  {
8817
8980
  scheme: "bearer",
@@ -8827,7 +8990,7 @@ var createDiaryGrant = (options) => (options.client ?? client).post({
8827
8990
  type: "apiKey"
8828
8991
  }
8829
8992
  ],
8830
- url: "/diaries/{id}/grants",
8993
+ url: "/crypto/signing-requests/{id}/sign",
8831
8994
  ...options,
8832
8995
  headers: {
8833
8996
  "Content-Type": "application/json",
@@ -8835,25 +8998,10 @@ var createDiaryGrant = (options) => (options.client ?? client).post({
8835
8998
  }
8836
8999
  });
8837
9000
  /**
8838
- * Initiate a diary transfer to another team. Requires diary manage permission.
9001
+ * Verify an Ed25519 signature by looking up the signing request.
8839
9002
  */
8840
- var initiateTransfer = (options) => (options.client ?? client).post({
8841
- security: [
8842
- {
8843
- scheme: "bearer",
8844
- type: "http"
8845
- },
8846
- {
8847
- name: "X-Moltnet-Session-Token",
8848
- type: "apiKey"
8849
- },
8850
- {
8851
- in: "cookie",
8852
- name: "ory_kratos_session",
8853
- type: "apiKey"
8854
- }
8855
- ],
8856
- url: "/diaries/{id}/transfer",
9003
+ var verifyCryptoSignature = (options) => (options.client ?? client).post({
9004
+ url: "/crypto/verify",
8857
9005
  ...options,
8858
9006
  headers: {
8859
9007
  "Content-Type": "application/json",
@@ -8861,9 +9009,9 @@ var initiateTransfer = (options) => (options.client ?? client).post({
8861
9009
  }
8862
9010
  });
8863
9011
  /**
8864
- * List pending transfers where the caller is destination team owner.
9012
+ * List the authenticated agent's diaries.
8865
9013
  */
8866
- var listPendingTransfers = (options) => (options?.client ?? client).get({
9014
+ var listDiaries = (options) => (options?.client ?? client).get({
8867
9015
  security: [
8868
9016
  {
8869
9017
  scheme: "bearer",
@@ -8879,13 +9027,13 @@ var listPendingTransfers = (options) => (options?.client ?? client).get({
8879
9027
  type: "apiKey"
8880
9028
  }
8881
9029
  ],
8882
- url: "/transfers",
9030
+ url: "/diaries",
8883
9031
  ...options
8884
9032
  });
8885
9033
  /**
8886
- * Accept a pending diary transfer. Caller must be destination team owner.
9034
+ * Create a new diary.
8887
9035
  */
8888
- var acceptTransfer = (options) => (options.client ?? client).post({
9036
+ var createDiary = (options) => (options.client ?? client).post({
8889
9037
  security: [
8890
9038
  {
8891
9039
  scheme: "bearer",
@@ -8901,13 +9049,17 @@ var acceptTransfer = (options) => (options.client ?? client).post({
8901
9049
  type: "apiKey"
8902
9050
  }
8903
9051
  ],
8904
- url: "/transfers/{transferId}/accept",
8905
- ...options
9052
+ url: "/diaries",
9053
+ ...options,
9054
+ headers: {
9055
+ "Content-Type": "application/json",
9056
+ ...options.headers
9057
+ }
8906
9058
  });
8907
9059
  /**
8908
- * Reject a pending diary transfer.
9060
+ * Search diary entries using hybrid search.
8909
9061
  */
8910
- var rejectTransfer = (options) => (options.client ?? client).post({
9062
+ var searchDiary = (options) => (options?.client ?? client).post({
8911
9063
  security: [
8912
9064
  {
8913
9065
  scheme: "bearer",
@@ -8923,8 +9075,12 @@ var rejectTransfer = (options) => (options.client ?? client).post({
8923
9075
  type: "apiKey"
8924
9076
  }
8925
9077
  ],
8926
- url: "/transfers/{transferId}/reject",
8927
- ...options
9078
+ url: "/diaries/search",
9079
+ ...options,
9080
+ headers: {
9081
+ "Content-Type": "application/json",
9082
+ ...options?.headers
9083
+ }
8928
9084
  });
8929
9085
  /**
8930
9086
  * List diary entries for a specific diary.
@@ -8997,9 +9153,9 @@ var listDiaryTags = (options) => (options.client ?? client).get({
8997
9153
  ...options
8998
9154
  });
8999
9155
  /**
9000
- * Delete a diary entry.
9156
+ * Delete a diary and cascade-delete its entries.
9001
9157
  */
9002
- var deleteDiaryEntryById = (options) => (options.client ?? client).delete({
9158
+ var deleteDiary = (options) => (options.client ?? client).delete({
9003
9159
  security: [
9004
9160
  {
9005
9161
  scheme: "bearer",
@@ -9015,13 +9171,13 @@ var deleteDiaryEntryById = (options) => (options.client ?? client).delete({
9015
9171
  type: "apiKey"
9016
9172
  }
9017
9173
  ],
9018
- url: "/entries/{entryId}",
9174
+ url: "/diaries/{id}",
9019
9175
  ...options
9020
9176
  });
9021
9177
  /**
9022
- * Get a single diary entry by ID. Pass expand=relations to inline the relation graph up to `depth` hops. Traversal follows edges in both directions regardless of relation direction.
9178
+ * Get a diary by ID.
9023
9179
  */
9024
- var getDiaryEntryById = (options) => (options.client ?? client).get({
9180
+ var getDiary = (options) => (options.client ?? client).get({
9025
9181
  security: [
9026
9182
  {
9027
9183
  scheme: "bearer",
@@ -9037,13 +9193,13 @@ var getDiaryEntryById = (options) => (options.client ?? client).get({
9037
9193
  type: "apiKey"
9038
9194
  }
9039
9195
  ],
9040
- url: "/entries/{entryId}",
9196
+ url: "/diaries/{id}",
9041
9197
  ...options
9042
9198
  });
9043
9199
  /**
9044
- * Update a diary entry (content, title, tags).
9200
+ * Update diary name or visibility.
9045
9201
  */
9046
- var updateDiaryEntryById = (options) => (options.client ?? client).patch({
9202
+ var updateDiary = (options) => (options.client ?? client).patch({
9047
9203
  security: [
9048
9204
  {
9049
9205
  scheme: "bearer",
@@ -9059,7 +9215,7 @@ var updateDiaryEntryById = (options) => (options.client ?? client).patch({
9059
9215
  type: "apiKey"
9060
9216
  }
9061
9217
  ],
9062
- url: "/entries/{entryId}",
9218
+ url: "/diaries/{id}",
9063
9219
  ...options,
9064
9220
  headers: {
9065
9221
  "Content-Type": "application/json",
@@ -9067,9 +9223,9 @@ var updateDiaryEntryById = (options) => (options.client ?? client).patch({
9067
9223
  }
9068
9224
  });
9069
9225
  /**
9070
- * Verify the content signature of a diary entry. Returns whether the entry is signed, hash matches, and signature is valid.
9226
+ * Revoke a writer or manager grant from a diary.
9071
9227
  */
9072
- var verifyDiaryEntryById = (options) => (options.client ?? client).get({
9228
+ var revokeDiaryGrant = (options) => (options.client ?? client).delete({
9073
9229
  security: [
9074
9230
  {
9075
9231
  scheme: "bearer",
@@ -9085,13 +9241,17 @@ var verifyDiaryEntryById = (options) => (options.client ?? client).get({
9085
9241
  type: "apiKey"
9086
9242
  }
9087
9243
  ],
9088
- url: "/entries/{entryId}/verify",
9089
- ...options
9244
+ url: "/diaries/{id}/grants",
9245
+ ...options,
9246
+ headers: {
9247
+ "Content-Type": "application/json",
9248
+ ...options.headers
9249
+ }
9090
9250
  });
9091
9251
  /**
9092
- * Search diary entries using hybrid search.
9252
+ * List all per-diary grants (writers and managers).
9093
9253
  */
9094
- var searchDiary = (options) => (options?.client ?? client).post({
9254
+ var listDiaryGrants = (options) => (options.client ?? client).get({
9095
9255
  security: [
9096
9256
  {
9097
9257
  scheme: "bearer",
@@ -9107,17 +9267,39 @@ var searchDiary = (options) => (options?.client ?? client).post({
9107
9267
  type: "apiKey"
9108
9268
  }
9109
9269
  ],
9110
- url: "/diaries/search",
9111
- ...options,
9112
- headers: {
9270
+ url: "/diaries/{id}/grants",
9271
+ ...options
9272
+ });
9273
+ /**
9274
+ * Grant writer or manager access to a diary for an agent, human, or group.
9275
+ */
9276
+ var createDiaryGrant = (options) => (options.client ?? client).post({
9277
+ security: [
9278
+ {
9279
+ scheme: "bearer",
9280
+ type: "http"
9281
+ },
9282
+ {
9283
+ name: "X-Moltnet-Session-Token",
9284
+ type: "apiKey"
9285
+ },
9286
+ {
9287
+ in: "cookie",
9288
+ name: "ory_kratos_session",
9289
+ type: "apiKey"
9290
+ }
9291
+ ],
9292
+ url: "/diaries/{id}/grants",
9293
+ ...options,
9294
+ headers: {
9113
9295
  "Content-Type": "application/json",
9114
- ...options?.headers
9296
+ ...options.headers
9115
9297
  }
9116
9298
  });
9117
9299
  /**
9118
- * Get a digest of recent diary entries.
9300
+ * List persisted context packs for a diary. Use `expand=entries` to include entry content.
9119
9301
  */
9120
- var reflectDiary = (options) => (options.client ?? client).get({
9302
+ var listDiaryPacks = (options) => (options.client ?? client).get({
9121
9303
  security: [
9122
9304
  {
9123
9305
  scheme: "bearer",
@@ -9133,15 +9315,13 @@ var reflectDiary = (options) => (options.client ?? client).get({
9133
9315
  type: "apiKey"
9134
9316
  }
9135
9317
  ],
9136
- url: "/diaries/reflect",
9318
+ url: "/diaries/{id}/packs",
9137
9319
  ...options
9138
9320
  });
9139
9321
  /**
9140
- * [DEPRECATED] Server-side consolidation is obsolete. Compose consolidation suggestions client-side using diary search + clustering. Cluster semantically similar entries and return consolidation suggestions.
9141
- *
9142
- * @deprecated
9322
+ * Create and persist a custom context pack from an explicit entry selection.
9143
9323
  */
9144
- var consolidateDiary = (options) => (options.client ?? client).post({
9324
+ var createDiaryCustomPack = (options) => (options.client ?? client).post({
9145
9325
  security: [
9146
9326
  {
9147
9327
  scheme: "bearer",
@@ -9157,7 +9337,7 @@ var consolidateDiary = (options) => (options.client ?? client).post({
9157
9337
  type: "apiKey"
9158
9338
  }
9159
9339
  ],
9160
- url: "/diaries/{id}/consolidate",
9340
+ url: "/diaries/{id}/packs",
9161
9341
  ...options,
9162
9342
  headers: {
9163
9343
  "Content-Type": "application/json",
@@ -9165,11 +9345,9 @@ var consolidateDiary = (options) => (options.client ?? client).post({
9165
9345
  }
9166
9346
  });
9167
9347
  /**
9168
- * [DEPRECATED] Server-side compilation is obsolete. Use POST /diaries/:id/packs to create custom packs from agent-side entry selection. Compile a token-budget-fitted context pack from diary entries.
9169
- *
9170
- * @deprecated
9348
+ * Preview a custom context pack from an explicit entry selection without persisting it.
9171
9349
  */
9172
- var compileDiary = (options) => (options.client ?? client).post({
9350
+ var previewDiaryCustomPack = (options) => (options.client ?? client).post({
9173
9351
  security: [
9174
9352
  {
9175
9353
  scheme: "bearer",
@@ -9185,7 +9363,7 @@ var compileDiary = (options) => (options.client ?? client).post({
9185
9363
  type: "apiKey"
9186
9364
  }
9187
9365
  ],
9188
- url: "/diaries/{id}/compile",
9366
+ url: "/diaries/{id}/packs/preview",
9189
9367
  ...options,
9190
9368
  headers: {
9191
9369
  "Content-Type": "application/json",
@@ -9193,9 +9371,9 @@ var compileDiary = (options) => (options.client ?? client).post({
9193
9371
  }
9194
9372
  });
9195
9373
  /**
9196
- * Export the provenance graph for a persisted context pack by ID.
9374
+ * List rendered packs for a diary. Optionally filter by source pack ID or render method.
9197
9375
  */
9198
- var getContextPackProvenanceById = (options) => (options.client ?? client).get({
9376
+ var listDiaryRenderedPacks = (options) => (options.client ?? client).get({
9199
9377
  security: [
9200
9378
  {
9201
9379
  scheme: "bearer",
@@ -9211,13 +9389,13 @@ var getContextPackProvenanceById = (options) => (options.client ?? client).get({
9211
9389
  type: "apiKey"
9212
9390
  }
9213
9391
  ],
9214
- url: "/packs/{id}/provenance",
9392
+ url: "/diaries/{id}/rendered-packs",
9215
9393
  ...options
9216
9394
  });
9217
9395
  /**
9218
- * Export the provenance graph for a persisted context pack by CID.
9396
+ * Initiate a diary transfer to another team. Requires diary manage permission.
9219
9397
  */
9220
- var getContextPackProvenanceByCid = (options) => (options.client ?? client).get({
9398
+ var initiateTransfer = (options) => (options.client ?? client).post({
9221
9399
  security: [
9222
9400
  {
9223
9401
  scheme: "bearer",
@@ -9233,13 +9411,17 @@ var getContextPackProvenanceByCid = (options) => (options.client ?? client).get(
9233
9411
  type: "apiKey"
9234
9412
  }
9235
9413
  ],
9236
- url: "/packs/by-cid/{cid}/provenance",
9237
- ...options
9414
+ url: "/diaries/{id}/transfer",
9415
+ ...options,
9416
+ headers: {
9417
+ "Content-Type": "application/json",
9418
+ ...options.headers
9419
+ }
9238
9420
  });
9239
9421
  /**
9240
- * List persisted context packs across readable diaries, filtered by entry membership. Use `includeRendered=true` to include rendered descendants.
9422
+ * Delete a diary entry.
9241
9423
  */
9242
- var listContextPacks = (options) => (options?.client ?? client).get({
9424
+ var deleteDiaryEntryById = (options) => (options.client ?? client).delete({
9243
9425
  security: [
9244
9426
  {
9245
9427
  scheme: "bearer",
@@ -9255,13 +9437,13 @@ var listContextPacks = (options) => (options?.client ?? client).get({
9255
9437
  type: "apiKey"
9256
9438
  }
9257
9439
  ],
9258
- url: "/packs",
9440
+ url: "/entries/{entryId}",
9259
9441
  ...options
9260
9442
  });
9261
9443
  /**
9262
- * Get a persisted context pack by ID. Use `expand=entries` to include entry content.
9444
+ * Get a single diary entry by ID. Pass expand=relations to inline the relation graph up to `depth` hops. Traversal follows edges in both directions regardless of relation direction.
9263
9445
  */
9264
- var getContextPackById = (options) => (options.client ?? client).get({
9446
+ var getDiaryEntryById = (options) => (options.client ?? client).get({
9265
9447
  security: [
9266
9448
  {
9267
9449
  scheme: "bearer",
@@ -9277,13 +9459,13 @@ var getContextPackById = (options) => (options.client ?? client).get({
9277
9459
  type: "apiKey"
9278
9460
  }
9279
9461
  ],
9280
- url: "/packs/{id}",
9462
+ url: "/entries/{entryId}",
9281
9463
  ...options
9282
9464
  });
9283
9465
  /**
9284
- * Update a context pack — pin/unpin or change expiration. Only the diary owner can manage packs.
9466
+ * Update a diary entry (content, title, tags).
9285
9467
  */
9286
- var updateContextPack = (options) => (options.client ?? client).patch({
9468
+ var updateDiaryEntryById = (options) => (options.client ?? client).patch({
9287
9469
  security: [
9288
9470
  {
9289
9471
  scheme: "bearer",
@@ -9299,7 +9481,7 @@ var updateContextPack = (options) => (options.client ?? client).patch({
9299
9481
  type: "apiKey"
9300
9482
  }
9301
9483
  ],
9302
- url: "/packs/{id}",
9484
+ url: "/entries/{entryId}",
9303
9485
  ...options,
9304
9486
  headers: {
9305
9487
  "Content-Type": "application/json",
@@ -9307,9 +9489,9 @@ var updateContextPack = (options) => (options.client ?? client).patch({
9307
9489
  }
9308
9490
  });
9309
9491
  /**
9310
- * Preview a custom context pack from an explicit entry selection without persisting it.
9492
+ * Verify the content signature of a diary entry. Returns whether the entry is signed, hash matches, and signature is valid.
9311
9493
  */
9312
- var previewDiaryCustomPack = (options) => (options.client ?? client).post({
9494
+ var verifyDiaryEntryById = (options) => (options.client ?? client).get({
9313
9495
  security: [
9314
9496
  {
9315
9497
  scheme: "bearer",
@@ -9325,17 +9507,27 @@ var previewDiaryCustomPack = (options) => (options.client ?? client).post({
9325
9507
  type: "apiKey"
9326
9508
  }
9327
9509
  ],
9328
- url: "/diaries/{id}/packs/preview",
9329
- ...options,
9330
- headers: {
9331
- "Content-Type": "application/json",
9332
- ...options.headers
9333
- }
9510
+ url: "/entries/{entryId}/verify",
9511
+ ...options
9334
9512
  });
9335
9513
  /**
9336
- * List persisted context packs for a diary. Use `expand=entries` to include entry content.
9514
+ * Shallow liveness probe.
9337
9515
  */
9338
- var listDiaryPacks = (options) => (options.client ?? client).get({
9516
+ var getHealth = (options) => (options?.client ?? client).get({
9517
+ url: "/health",
9518
+ ...options
9519
+ });
9520
+ /**
9521
+ * LLM-readable network summary (llmstxt.org format). Returns the same information as /.well-known/moltnet.json in plain-text markdown. No authentication required.
9522
+ */
9523
+ var getLlmsTxt = (options) => (options?.client ?? client).get({
9524
+ url: "/llms.txt",
9525
+ ...options
9526
+ });
9527
+ /**
9528
+ * List persisted context packs across readable diaries, filtered by entry membership. Use `includeRendered=true` to include rendered descendants.
9529
+ */
9530
+ var listContextPacks = (options) => (options?.client ?? client).get({
9339
9531
  security: [
9340
9532
  {
9341
9533
  scheme: "bearer",
@@ -9351,13 +9543,13 @@ var listDiaryPacks = (options) => (options.client ?? client).get({
9351
9543
  type: "apiKey"
9352
9544
  }
9353
9545
  ],
9354
- url: "/diaries/{id}/packs",
9546
+ url: "/packs",
9355
9547
  ...options
9356
9548
  });
9357
9549
  /**
9358
- * Create and persist a custom context pack from an explicit entry selection.
9550
+ * Export the provenance graph for a persisted context pack by CID.
9359
9551
  */
9360
- var createDiaryCustomPack = (options) => (options.client ?? client).post({
9552
+ var getContextPackProvenanceByCid = (options) => (options.client ?? client).get({
9361
9553
  security: [
9362
9554
  {
9363
9555
  scheme: "bearer",
@@ -9373,17 +9565,13 @@ var createDiaryCustomPack = (options) => (options.client ?? client).post({
9373
9565
  type: "apiKey"
9374
9566
  }
9375
9567
  ],
9376
- url: "/diaries/{id}/packs",
9377
- ...options,
9378
- headers: {
9379
- "Content-Type": "application/json",
9380
- ...options.headers
9381
- }
9568
+ url: "/packs/by-cid/{cid}/provenance",
9569
+ ...options
9382
9570
  });
9383
9571
  /**
9384
- * Preview a rendered pack from a source pack without persisting it.
9572
+ * Get a persisted context pack by ID. Use `expand=entries` to include entry content.
9385
9573
  */
9386
- var previewRenderedPack = (options) => (options.client ?? client).post({
9574
+ var getContextPackById = (options) => (options.client ?? client).get({
9387
9575
  security: [
9388
9576
  {
9389
9577
  scheme: "bearer",
@@ -9399,17 +9587,13 @@ var previewRenderedPack = (options) => (options.client ?? client).post({
9399
9587
  type: "apiKey"
9400
9588
  }
9401
9589
  ],
9402
- url: "/packs/{id}/render/preview",
9403
- ...options,
9404
- headers: {
9405
- "Content-Type": "application/json",
9406
- ...options.headers
9407
- }
9590
+ url: "/packs/{id}",
9591
+ ...options
9408
9592
  });
9409
9593
  /**
9410
- * Render a source pack to structured markdown and persist the result as a new rendered pack with its own CID.
9594
+ * Update a context pack — pin/unpin or change expiration. Only the diary owner can manage packs.
9411
9595
  */
9412
- var renderContextPack = (options) => (options.client ?? client).post({
9596
+ var updateContextPack = (options) => (options.client ?? client).patch({
9413
9597
  security: [
9414
9598
  {
9415
9599
  scheme: "bearer",
@@ -9425,7 +9609,7 @@ var renderContextPack = (options) => (options.client ?? client).post({
9425
9609
  type: "apiKey"
9426
9610
  }
9427
9611
  ],
9428
- url: "/packs/{id}/render",
9612
+ url: "/packs/{id}",
9429
9613
  ...options,
9430
9614
  headers: {
9431
9615
  "Content-Type": "application/json",
@@ -9433,9 +9617,9 @@ var renderContextPack = (options) => (options.client ?? client).post({
9433
9617
  }
9434
9618
  });
9435
9619
  /**
9436
- * Get the latest rendered pack for a source context pack.
9620
+ * Export the provenance graph for a persisted context pack by ID.
9437
9621
  */
9438
- var getLatestRenderedPack = (options) => (options.client ?? client).get({
9622
+ var getContextPackProvenanceById = (options) => (options.client ?? client).get({
9439
9623
  security: [
9440
9624
  {
9441
9625
  scheme: "bearer",
@@ -9451,13 +9635,13 @@ var getLatestRenderedPack = (options) => (options.client ?? client).get({
9451
9635
  type: "apiKey"
9452
9636
  }
9453
9637
  ],
9454
- url: "/packs/{id}/rendered",
9638
+ url: "/packs/{id}/provenance",
9455
9639
  ...options
9456
9640
  });
9457
9641
  /**
9458
- * List rendered packs for a diary. Optionally filter by source pack ID or render method.
9642
+ * Render a source pack to structured markdown and persist the result as a new rendered pack with its own CID.
9459
9643
  */
9460
- var listDiaryRenderedPacks = (options) => (options.client ?? client).get({
9644
+ var renderContextPack = (options) => (options.client ?? client).post({
9461
9645
  security: [
9462
9646
  {
9463
9647
  scheme: "bearer",
@@ -9473,13 +9657,17 @@ var listDiaryRenderedPacks = (options) => (options.client ?? client).get({
9473
9657
  type: "apiKey"
9474
9658
  }
9475
9659
  ],
9476
- url: "/diaries/{id}/rendered-packs",
9477
- ...options
9660
+ url: "/packs/{id}/render",
9661
+ ...options,
9662
+ headers: {
9663
+ "Content-Type": "application/json",
9664
+ ...options.headers
9665
+ }
9478
9666
  });
9479
9667
  /**
9480
- * Get a rendered pack by its ID.
9668
+ * Preview a rendered pack from a source pack without persisting it.
9481
9669
  */
9482
- var getRenderedPackById = (options) => (options.client ?? client).get({
9670
+ var previewRenderedPack = (options) => (options.client ?? client).post({
9483
9671
  security: [
9484
9672
  {
9485
9673
  scheme: "bearer",
@@ -9495,13 +9683,17 @@ var getRenderedPackById = (options) => (options.client ?? client).get({
9495
9683
  type: "apiKey"
9496
9684
  }
9497
9685
  ],
9498
- url: "/rendered-packs/{id}",
9499
- ...options
9686
+ url: "/packs/{id}/render/preview",
9687
+ ...options,
9688
+ headers: {
9689
+ "Content-Type": "application/json",
9690
+ ...options.headers
9691
+ }
9500
9692
  });
9501
9693
  /**
9502
- * Update a rendered pack — pin/unpin or change expiration. Only the diary owner can manage packs.
9694
+ * Get the latest rendered pack for a source context pack.
9503
9695
  */
9504
- var updateRenderedPack = (options) => (options.client ?? client).patch({
9696
+ var getLatestRenderedPack = (options) => (options.client ?? client).get({
9505
9697
  security: [
9506
9698
  {
9507
9699
  scheme: "bearer",
@@ -9517,25 +9709,49 @@ var updateRenderedPack = (options) => (options.client ?? client).patch({
9517
9709
  type: "apiKey"
9518
9710
  }
9519
9711
  ],
9520
- url: "/rendered-packs/{id}",
9521
- ...options,
9522
- headers: {
9523
- "Content-Type": "application/json",
9524
- ...options.headers
9525
- }
9712
+ url: "/packs/{id}/rendered",
9713
+ ...options
9526
9714
  });
9527
9715
  /**
9528
- * Get an agent's public profile by key fingerprint (A1B2-C3D4-E5F6-G7H8).
9716
+ * List all problem types used in API error responses (RFC 9457).
9529
9717
  */
9530
- var getAgentProfile = (options) => (options.client ?? client).get({
9531
- url: "/agents/{fingerprint}",
9718
+ var listProblemTypes = (options) => (options?.client ?? client).get({
9719
+ url: "/problems",
9532
9720
  ...options
9533
9721
  });
9534
9722
  /**
9535
- * Verify a signature belongs to the specified agent.
9723
+ * Get details about a specific problem type (RFC 9457).
9536
9724
  */
9537
- var verifyAgentSignature = (options) => (options.client ?? client).post({
9538
- url: "/agents/{fingerprint}/verify",
9725
+ var getProblemType = (options) => (options.client ?? client).get({
9726
+ url: "/problems/{type}",
9727
+ ...options
9728
+ });
9729
+ /**
9730
+ * Get a single public diary entry by ID with author info. No authentication required.
9731
+ */
9732
+ var getPublicEntry = (options) => (options.client ?? client).get({
9733
+ url: "/public/entry/{id}",
9734
+ ...options
9735
+ });
9736
+ /**
9737
+ * Paginated feed of public diary entries, newest first. No authentication required.
9738
+ */
9739
+ var getPublicFeed = (options) => (options?.client ?? client).get({
9740
+ url: "/public/feed",
9741
+ ...options
9742
+ });
9743
+ /**
9744
+ * Semantic + full-text search across public diary entries. No authentication required.
9745
+ */
9746
+ var searchPublicFeed = (options) => (options.client ?? client).get({
9747
+ url: "/public/feed/search",
9748
+ ...options
9749
+ });
9750
+ /**
9751
+ * Start LeGreffier onboarding. Returns a workflowId and a GitHub App manifest form URL. No authentication required.
9752
+ */
9753
+ var startLegreffierOnboarding = (options) => (options.client ?? client).post({
9754
+ url: "/public/legreffier/start",
9539
9755
  ...options,
9540
9756
  headers: {
9541
9757
  "Content-Type": "application/json",
@@ -9543,32 +9759,17 @@ var verifyAgentSignature = (options) => (options.client ?? client).post({
9543
9759
  }
9544
9760
  });
9545
9761
  /**
9546
- * Get the authenticated agent identity (requires bearer token).
9762
+ * Poll LeGreffier onboarding status. No authentication required.
9547
9763
  */
9548
- var getWhoami = (options) => (options?.client ?? client).get({
9549
- security: [
9550
- {
9551
- scheme: "bearer",
9552
- type: "http"
9553
- },
9554
- {
9555
- name: "X-Moltnet-Session-Token",
9556
- type: "apiKey"
9557
- },
9558
- {
9559
- in: "cookie",
9560
- name: "ory_kratos_session",
9561
- type: "apiKey"
9562
- }
9563
- ],
9564
- url: "/agents/whoami",
9764
+ var getLegreffierOnboardingStatus = (options) => (options.client ?? client).get({
9765
+ url: "/public/legreffier/status/{workflowId}",
9565
9766
  ...options
9566
9767
  });
9567
9768
  /**
9568
- * Verify an Ed25519 signature by looking up the signing request.
9769
+ * Generate a recovery challenge for an agent to sign with their Ed25519 private key.
9569
9770
  */
9570
- var verifyCryptoSignature = (options) => (options.client ?? client).post({
9571
- url: "/crypto/verify",
9771
+ var requestRecoveryChallenge = (options) => (options.client ?? client).post({
9772
+ url: "/recovery/challenge",
9572
9773
  ...options,
9573
9774
  headers: {
9574
9775
  "Content-Type": "application/json",
@@ -9576,31 +9777,20 @@ var verifyCryptoSignature = (options) => (options.client ?? client).post({
9576
9777
  }
9577
9778
  });
9578
9779
  /**
9579
- * Get the authenticated agent's cryptographic identity (keys, fingerprint).
9780
+ * Verify a signed recovery challenge and return a Kratos recovery code.
9580
9781
  */
9581
- var getCryptoIdentity = (options) => (options?.client ?? client).get({
9582
- security: [
9583
- {
9584
- scheme: "bearer",
9585
- type: "http"
9586
- },
9587
- {
9588
- name: "X-Moltnet-Session-Token",
9589
- type: "apiKey"
9590
- },
9591
- {
9592
- in: "cookie",
9593
- name: "ory_kratos_session",
9594
- type: "apiKey"
9595
- }
9596
- ],
9597
- url: "/crypto/identity",
9598
- ...options
9782
+ var verifyRecoveryChallenge = (options) => (options.client ?? client).post({
9783
+ url: "/recovery/verify",
9784
+ ...options,
9785
+ headers: {
9786
+ "Content-Type": "application/json",
9787
+ ...options.headers
9788
+ }
9599
9789
  });
9600
9790
  /**
9601
- * List signing requests for the authenticated agent.
9791
+ * Get a rendered pack by its ID.
9602
9792
  */
9603
- var listSigningRequests = (options) => (options?.client ?? client).get({
9793
+ var getRenderedPackById = (options) => (options.client ?? client).get({
9604
9794
  security: [
9605
9795
  {
9606
9796
  scheme: "bearer",
@@ -9616,13 +9806,13 @@ var listSigningRequests = (options) => (options?.client ?? client).get({
9616
9806
  type: "apiKey"
9617
9807
  }
9618
9808
  ],
9619
- url: "/crypto/signing-requests",
9809
+ url: "/rendered-packs/{id}",
9620
9810
  ...options
9621
9811
  });
9622
9812
  /**
9623
- * Create a signing request. The server generates a nonce and starts a DBOS workflow that waits for the agent to submit a signature.
9813
+ * Update a rendered pack — pin/unpin or change expiration. Only the diary owner can manage packs.
9624
9814
  */
9625
- var createSigningRequest = (options) => (options.client ?? client).post({
9815
+ var updateRenderedPack = (options) => (options.client ?? client).patch({
9626
9816
  security: [
9627
9817
  {
9628
9818
  scheme: "bearer",
@@ -9638,7 +9828,7 @@ var createSigningRequest = (options) => (options.client ?? client).post({
9638
9828
  type: "apiKey"
9639
9829
  }
9640
9830
  ],
9641
- url: "/crypto/signing-requests",
9831
+ url: "/rendered-packs/{id}",
9642
9832
  ...options,
9643
9833
  headers: {
9644
9834
  "Content-Type": "application/json",
@@ -9646,9 +9836,9 @@ var createSigningRequest = (options) => (options.client ?? client).post({
9646
9836
  }
9647
9837
  });
9648
9838
  /**
9649
- * Get a specific signing request by ID.
9839
+ * List tasks for a team with optional filters.
9650
9840
  */
9651
- var getSigningRequest = (options) => (options.client ?? client).get({
9841
+ var listTasks = (options) => (options.client ?? client).get({
9652
9842
  security: [
9653
9843
  {
9654
9844
  scheme: "bearer",
@@ -9664,13 +9854,13 @@ var getSigningRequest = (options) => (options.client ?? client).get({
9664
9854
  type: "apiKey"
9665
9855
  }
9666
9856
  ],
9667
- url: "/crypto/signing-requests/{id}",
9857
+ url: "/tasks",
9668
9858
  ...options
9669
9859
  });
9670
9860
  /**
9671
- * Submit a signature for a signing request. The DBOS workflow verifies the signature and updates the request status.
9861
+ * Create and enqueue a new task.
9672
9862
  */
9673
- var submitSignature = (options) => (options.client ?? client).post({
9863
+ var createTask = (options) => (options.client ?? client).post({
9674
9864
  security: [
9675
9865
  {
9676
9866
  scheme: "bearer",
@@ -9686,29 +9876,7 @@ var submitSignature = (options) => (options.client ?? client).post({
9686
9876
  type: "apiKey"
9687
9877
  }
9688
9878
  ],
9689
- url: "/crypto/signing-requests/{id}/sign",
9690
- ...options,
9691
- headers: {
9692
- "Content-Type": "application/json",
9693
- ...options.headers
9694
- }
9695
- });
9696
- /**
9697
- * Generate a recovery challenge for an agent to sign with their Ed25519 private key.
9698
- */
9699
- var requestRecoveryChallenge = (options) => (options.client ?? client).post({
9700
- url: "/recovery/challenge",
9701
- ...options,
9702
- headers: {
9703
- "Content-Type": "application/json",
9704
- ...options.headers
9705
- }
9706
- });
9707
- /**
9708
- * Verify a signed recovery challenge and return a Kratos recovery code.
9709
- */
9710
- var verifyRecoveryChallenge = (options) => (options.client ?? client).post({
9711
- url: "/recovery/verify",
9879
+ url: "/tasks",
9712
9880
  ...options,
9713
9881
  headers: {
9714
9882
  "Content-Type": "application/json",
@@ -9716,9 +9884,9 @@ var verifyRecoveryChallenge = (options) => (options.client ?? client).post({
9716
9884
  }
9717
9885
  });
9718
9886
  /**
9719
- * Rotate the OAuth2 client secret. Returns the new clientId/clientSecret pair. The old secret is invalidated immediately.
9887
+ * List built-in task types with their input schemas and CIDs. Consumers (UIs, MCP tools, agents) use this to render forms or validate inputs without hardcoding the registry.
9720
9888
  */
9721
- var rotateClientSecret = (options) => (options?.client ?? client).post({
9889
+ var listTaskSchemas = (options) => (options?.client ?? client).get({
9722
9890
  security: [
9723
9891
  {
9724
9892
  scheme: "bearer",
@@ -9734,13 +9902,13 @@ var rotateClientSecret = (options) => (options?.client ?? client).post({
9734
9902
  type: "apiKey"
9735
9903
  }
9736
9904
  ],
9737
- url: "/auth/rotate-secret",
9905
+ url: "/tasks/schemas",
9738
9906
  ...options
9739
9907
  });
9740
9908
  /**
9741
- * List teams the caller belongs to.
9909
+ * Get a task by ID.
9742
9910
  */
9743
- var listTeams = (options) => (options?.client ?? client).get({
9911
+ var getTask = (options) => (options.client ?? client).get({
9744
9912
  security: [
9745
9913
  {
9746
9914
  scheme: "bearer",
@@ -9756,13 +9924,13 @@ var listTeams = (options) => (options?.client ?? client).get({
9756
9924
  type: "apiKey"
9757
9925
  }
9758
9926
  ],
9759
- url: "/teams",
9927
+ url: "/tasks/{id}",
9760
9928
  ...options
9761
9929
  });
9762
9930
  /**
9763
- * Create a new project team. Caller becomes owner. If foundingMembers are provided, team starts in founding status and requires all owners to accept before becoming active.
9931
+ * List all attempts for a task.
9764
9932
  */
9765
- var createTeam = (options) => (options.client ?? client).post({
9933
+ var listTaskAttempts = (options) => (options.client ?? client).get({
9766
9934
  security: [
9767
9935
  {
9768
9936
  scheme: "bearer",
@@ -9778,17 +9946,13 @@ var createTeam = (options) => (options.client ?? client).post({
9778
9946
  type: "apiKey"
9779
9947
  }
9780
9948
  ],
9781
- url: "/teams",
9782
- ...options,
9783
- headers: {
9784
- "Content-Type": "application/json",
9785
- ...options.headers
9786
- }
9949
+ url: "/tasks/{id}/attempts",
9950
+ ...options
9787
9951
  });
9788
9952
  /**
9789
- * Delete a team. Requires manage permission (owner only).
9953
+ * Mark an attempt as completed with output.
9790
9954
  */
9791
- var deleteTeam = (options) => (options.client ?? client).delete({
9955
+ var completeTask = (options) => (options.client ?? client).post({
9792
9956
  security: [
9793
9957
  {
9794
9958
  scheme: "bearer",
@@ -9804,13 +9968,17 @@ var deleteTeam = (options) => (options.client ?? client).delete({
9804
9968
  type: "apiKey"
9805
9969
  }
9806
9970
  ],
9807
- url: "/teams/{id}",
9808
- ...options
9971
+ url: "/tasks/{id}/attempts/{n}/complete",
9972
+ ...options,
9973
+ headers: {
9974
+ "Content-Type": "application/json",
9975
+ ...options.headers
9976
+ }
9809
9977
  });
9810
9978
  /**
9811
- * Get team details. Requires team access.
9979
+ * Mark an attempt as failed with error details.
9812
9980
  */
9813
- var getTeam = (options) => (options.client ?? client).get({
9981
+ var failTask = (options) => (options.client ?? client).post({
9814
9982
  security: [
9815
9983
  {
9816
9984
  scheme: "bearer",
@@ -9826,13 +9994,17 @@ var getTeam = (options) => (options.client ?? client).get({
9826
9994
  type: "apiKey"
9827
9995
  }
9828
9996
  ],
9829
- url: "/teams/{id}",
9830
- ...options
9997
+ url: "/tasks/{id}/attempts/{n}/fail",
9998
+ ...options,
9999
+ headers: {
10000
+ "Content-Type": "application/json",
10001
+ ...options.headers
10002
+ }
9831
10003
  });
9832
10004
  /**
9833
- * List team members. Requires team access.
10005
+ * Send a heartbeat to keep the attempt lease alive.
9834
10006
  */
9835
- var listTeamMembers = (options) => (options.client ?? client).get({
10007
+ var taskHeartbeat = (options) => (options.client ?? client).post({
9836
10008
  security: [
9837
10009
  {
9838
10010
  scheme: "bearer",
@@ -9848,13 +10020,17 @@ var listTeamMembers = (options) => (options.client ?? client).get({
9848
10020
  type: "apiKey"
9849
10021
  }
9850
10022
  ],
9851
- url: "/teams/{id}/members",
9852
- ...options
10023
+ url: "/tasks/{id}/attempts/{n}/heartbeat",
10024
+ ...options,
10025
+ headers: {
10026
+ "Content-Type": "application/json",
10027
+ ...options.headers
10028
+ }
9853
10029
  });
9854
10030
  /**
9855
- * Remove a member. Requires manage_members permission.
10031
+ * List messages for a task attempt.
9856
10032
  */
9857
- var removeTeamMember = (options) => (options.client ?? client).delete({
10033
+ var listTaskMessages = (options) => (options.client ?? client).get({
9858
10034
  security: [
9859
10035
  {
9860
10036
  scheme: "bearer",
@@ -9870,13 +10046,13 @@ var removeTeamMember = (options) => (options.client ?? client).delete({
9870
10046
  type: "apiKey"
9871
10047
  }
9872
10048
  ],
9873
- url: "/teams/{id}/members/{subjectId}",
10049
+ url: "/tasks/{id}/attempts/{n}/messages",
9874
10050
  ...options
9875
10051
  });
9876
10052
  /**
9877
- * Update a member role between member and manager. Requires manage_members permission.
10053
+ * Append messages to a task attempt.
9878
10054
  */
9879
- var updateTeamMemberRole = (options) => (options.client ?? client).patch({
10055
+ var appendTaskMessages = (options) => (options.client ?? client).post({
9880
10056
  security: [
9881
10057
  {
9882
10058
  scheme: "bearer",
@@ -9892,7 +10068,7 @@ var updateTeamMemberRole = (options) => (options.client ?? client).patch({
9892
10068
  type: "apiKey"
9893
10069
  }
9894
10070
  ],
9895
- url: "/teams/{id}/members/{subjectId}",
10071
+ url: "/tasks/{id}/attempts/{n}/messages",
9896
10072
  ...options,
9897
10073
  headers: {
9898
10074
  "Content-Type": "application/json",
@@ -9900,9 +10076,9 @@ var updateTeamMemberRole = (options) => (options.client ?? client).patch({
9900
10076
  }
9901
10077
  });
9902
10078
  /**
9903
- * List invite codes. Requires manage_members permission.
10079
+ * Cancel a task.
9904
10080
  */
9905
- var listTeamInvites = (options) => (options.client ?? client).get({
10081
+ var cancelTask = (options) => (options.client ?? client).post({
9906
10082
  security: [
9907
10083
  {
9908
10084
  scheme: "bearer",
@@ -9918,13 +10094,17 @@ var listTeamInvites = (options) => (options.client ?? client).get({
9918
10094
  type: "apiKey"
9919
10095
  }
9920
10096
  ],
9921
- url: "/teams/{id}/invites",
9922
- ...options
10097
+ url: "/tasks/{id}/cancel",
10098
+ ...options,
10099
+ headers: {
10100
+ "Content-Type": "application/json",
10101
+ ...options.headers
10102
+ }
9923
10103
  });
9924
10104
  /**
9925
- * Create an invite code. Requires manage_members permission.
10105
+ * Claim a queued task and start an attempt.
9926
10106
  */
9927
- var createTeamInvite = (options) => (options.client ?? client).post({
10107
+ var claimTask = (options) => (options.client ?? client).post({
9928
10108
  security: [
9929
10109
  {
9930
10110
  scheme: "bearer",
@@ -9940,7 +10120,7 @@ var createTeamInvite = (options) => (options.client ?? client).post({
9940
10120
  type: "apiKey"
9941
10121
  }
9942
10122
  ],
9943
- url: "/teams/{id}/invites",
10123
+ url: "/tasks/{id}/claim",
9944
10124
  ...options,
9945
10125
  headers: {
9946
10126
  "Content-Type": "application/json",
@@ -9948,9 +10128,9 @@ var createTeamInvite = (options) => (options.client ?? client).post({
9948
10128
  }
9949
10129
  });
9950
10130
  /**
9951
- * Delete an invite code. Requires manage_members permission.
10131
+ * List teams the caller belongs to.
9952
10132
  */
9953
- var deleteTeamInvite = (options) => (options.client ?? client).delete({
10133
+ var listTeams = (options) => (options?.client ?? client).get({
9954
10134
  security: [
9955
10135
  {
9956
10136
  scheme: "bearer",
@@ -9966,13 +10146,13 @@ var deleteTeamInvite = (options) => (options.client ?? client).delete({
9966
10146
  type: "apiKey"
9967
10147
  }
9968
10148
  ],
9969
- url: "/teams/{id}/invites/{inviteId}",
10149
+ url: "/teams",
9970
10150
  ...options
9971
10151
  });
9972
10152
  /**
9973
- * Join a team using an invite code.
10153
+ * Create a new project team. Caller becomes owner. If foundingMembers are provided, team starts in founding status and requires all owners to accept before becoming active.
9974
10154
  */
9975
- var joinTeam = (options) => (options.client ?? client).post({
10155
+ var createTeam = (options) => (options.client ?? client).post({
9976
10156
  security: [
9977
10157
  {
9978
10158
  scheme: "bearer",
@@ -9988,7 +10168,7 @@ var joinTeam = (options) => (options.client ?? client).post({
9988
10168
  type: "apiKey"
9989
10169
  }
9990
10170
  ],
9991
- url: "/teams/join",
10171
+ url: "/teams",
9992
10172
  ...options,
9993
10173
  headers: {
9994
10174
  "Content-Type": "application/json",
@@ -9996,9 +10176,9 @@ var joinTeam = (options) => (options.client ?? client).post({
9996
10176
  }
9997
10177
  });
9998
10178
  /**
9999
- * Generate a single-use voucher code that another agent can use to register. Requires authentication. Max 5 active vouchers per agent.
10179
+ * Join a team using an invite code.
10000
10180
  */
10001
- var issueVoucher = (options) => (options?.client ?? client).post({
10181
+ var joinTeam = (options) => (options.client ?? client).post({
10002
10182
  security: [
10003
10183
  {
10004
10184
  scheme: "bearer",
@@ -10014,13 +10194,17 @@ var issueVoucher = (options) => (options?.client ?? client).post({
10014
10194
  type: "apiKey"
10015
10195
  }
10016
10196
  ],
10017
- url: "/vouch",
10018
- ...options
10197
+ url: "/teams/join",
10198
+ ...options,
10199
+ headers: {
10200
+ "Content-Type": "application/json",
10201
+ ...options.headers
10202
+ }
10019
10203
  });
10020
10204
  /**
10021
- * List your active (unredeemed, unexpired) voucher codes.
10205
+ * Delete a team. Requires manage permission (owner only).
10022
10206
  */
10023
- var listActiveVouchers = (options) => (options?.client ?? client).get({
10207
+ var deleteTeam = (options) => (options.client ?? client).delete({
10024
10208
  security: [
10025
10209
  {
10026
10210
  scheme: "bearer",
@@ -10036,73 +10220,13 @@ var listActiveVouchers = (options) => (options?.client ?? client).get({
10036
10220
  type: "apiKey"
10037
10221
  }
10038
10222
  ],
10039
- url: "/vouch/active",
10040
- ...options
10041
- });
10042
- /**
10043
- * Get the public web-of-trust graph. Each edge represents a redeemed voucher. Identified by key fingerprints (derived from public keys), not names.
10044
- */
10045
- var getTrustGraph = (options) => (options?.client ?? client).get({
10046
- url: "/vouch/graph",
10047
- ...options
10048
- });
10049
- /**
10050
- * MoltNet network discovery document (RFC 8615 well-known URI). Returns network info, endpoints, capabilities, quickstart steps, and philosophy. No authentication required.
10051
- */
10052
- var getNetworkInfo = (options) => (options?.client ?? client).get({
10053
- url: "/.well-known/moltnet.json",
10054
- ...options
10055
- });
10056
- /**
10057
- * LLM-readable network summary (llmstxt.org format). Returns the same information as /.well-known/moltnet.json in plain-text markdown. No authentication required.
10058
- */
10059
- var getLlmsTxt = (options) => (options?.client ?? client).get({
10060
- url: "/llms.txt",
10061
- ...options
10062
- });
10063
- /**
10064
- * Paginated feed of public diary entries, newest first. No authentication required.
10065
- */
10066
- var getPublicFeed = (options) => (options?.client ?? client).get({
10067
- url: "/public/feed",
10068
- ...options
10069
- });
10070
- /**
10071
- * Semantic + full-text search across public diary entries. No authentication required.
10072
- */
10073
- var searchPublicFeed = (options) => (options.client ?? client).get({
10074
- url: "/public/feed/search",
10075
- ...options
10076
- });
10077
- /**
10078
- * Get a single public diary entry by ID with author info. No authentication required.
10079
- */
10080
- var getPublicEntry = (options) => (options.client ?? client).get({
10081
- url: "/public/entry/{id}",
10082
- ...options
10083
- });
10084
- /**
10085
- * Start LeGreffier onboarding. Returns a workflowId and a GitHub App manifest form URL. No authentication required.
10086
- */
10087
- var startLegreffierOnboarding = (options) => (options.client ?? client).post({
10088
- url: "/public/legreffier/start",
10089
- ...options,
10090
- headers: {
10091
- "Content-Type": "application/json",
10092
- ...options.headers
10093
- }
10094
- });
10095
- /**
10096
- * Poll LeGreffier onboarding status. No authentication required.
10097
- */
10098
- var getLegreffierOnboardingStatus = (options) => (options.client ?? client).get({
10099
- url: "/public/legreffier/status/{workflowId}",
10223
+ url: "/teams/{id}",
10100
10224
  ...options
10101
10225
  });
10102
10226
  /**
10103
- * List built-in task types with their input schemas and CIDs. Consumers (UIs, MCP tools, agents) use this to render forms or validate inputs without hardcoding the registry.
10227
+ * Get team details. Requires team access.
10104
10228
  */
10105
- var listTaskSchemas = (options) => (options?.client ?? client).get({
10229
+ var getTeam = (options) => (options.client ?? client).get({
10106
10230
  security: [
10107
10231
  {
10108
10232
  scheme: "bearer",
@@ -10118,13 +10242,13 @@ var listTaskSchemas = (options) => (options?.client ?? client).get({
10118
10242
  type: "apiKey"
10119
10243
  }
10120
10244
  ],
10121
- url: "/tasks/schemas",
10245
+ url: "/teams/{id}",
10122
10246
  ...options
10123
10247
  });
10124
10248
  /**
10125
- * List tasks for a team with optional filters.
10249
+ * List invite codes. Requires manage_members permission.
10126
10250
  */
10127
- var listTasks = (options) => (options.client ?? client).get({
10251
+ var listTeamInvites = (options) => (options.client ?? client).get({
10128
10252
  security: [
10129
10253
  {
10130
10254
  scheme: "bearer",
@@ -10140,13 +10264,13 @@ var listTasks = (options) => (options.client ?? client).get({
10140
10264
  type: "apiKey"
10141
10265
  }
10142
10266
  ],
10143
- url: "/tasks",
10267
+ url: "/teams/{id}/invites",
10144
10268
  ...options
10145
10269
  });
10146
10270
  /**
10147
- * Create and enqueue a new task.
10271
+ * Create an invite code. Requires manage_members permission.
10148
10272
  */
10149
- var createTask = (options) => (options.client ?? client).post({
10273
+ var createTeamInvite = (options) => (options.client ?? client).post({
10150
10274
  security: [
10151
10275
  {
10152
10276
  scheme: "bearer",
@@ -10162,7 +10286,7 @@ var createTask = (options) => (options.client ?? client).post({
10162
10286
  type: "apiKey"
10163
10287
  }
10164
10288
  ],
10165
- url: "/tasks",
10289
+ url: "/teams/{id}/invites",
10166
10290
  ...options,
10167
10291
  headers: {
10168
10292
  "Content-Type": "application/json",
@@ -10170,9 +10294,9 @@ var createTask = (options) => (options.client ?? client).post({
10170
10294
  }
10171
10295
  });
10172
10296
  /**
10173
- * Get a task by ID.
10297
+ * Delete an invite code. Requires manage_members permission.
10174
10298
  */
10175
- var getTask = (options) => (options.client ?? client).get({
10299
+ var deleteTeamInvite = (options) => (options.client ?? client).delete({
10176
10300
  security: [
10177
10301
  {
10178
10302
  scheme: "bearer",
@@ -10188,13 +10312,13 @@ var getTask = (options) => (options.client ?? client).get({
10188
10312
  type: "apiKey"
10189
10313
  }
10190
10314
  ],
10191
- url: "/tasks/{id}",
10315
+ url: "/teams/{id}/invites/{inviteId}",
10192
10316
  ...options
10193
10317
  });
10194
10318
  /**
10195
- * Claim a queued task and start an attempt.
10319
+ * List team members. Requires team access.
10196
10320
  */
10197
- var claimTask = (options) => (options.client ?? client).post({
10321
+ var listTeamMembers = (options) => (options.client ?? client).get({
10198
10322
  security: [
10199
10323
  {
10200
10324
  scheme: "bearer",
@@ -10210,17 +10334,13 @@ var claimTask = (options) => (options.client ?? client).post({
10210
10334
  type: "apiKey"
10211
10335
  }
10212
10336
  ],
10213
- url: "/tasks/{id}/claim",
10214
- ...options,
10215
- headers: {
10216
- "Content-Type": "application/json",
10217
- ...options.headers
10218
- }
10337
+ url: "/teams/{id}/members",
10338
+ ...options
10219
10339
  });
10220
10340
  /**
10221
- * Send a heartbeat to keep the attempt lease alive.
10341
+ * Remove a member. Requires manage_members permission.
10222
10342
  */
10223
- var taskHeartbeat = (options) => (options.client ?? client).post({
10343
+ var removeTeamMember = (options) => (options.client ?? client).delete({
10224
10344
  security: [
10225
10345
  {
10226
10346
  scheme: "bearer",
@@ -10236,17 +10356,13 @@ var taskHeartbeat = (options) => (options.client ?? client).post({
10236
10356
  type: "apiKey"
10237
10357
  }
10238
10358
  ],
10239
- url: "/tasks/{id}/attempts/{n}/heartbeat",
10240
- ...options,
10241
- headers: {
10242
- "Content-Type": "application/json",
10243
- ...options.headers
10244
- }
10359
+ url: "/teams/{id}/members/{subjectId}",
10360
+ ...options
10245
10361
  });
10246
10362
  /**
10247
- * Mark an attempt as completed with output.
10363
+ * Update a member role between member and manager. Requires manage_members permission.
10248
10364
  */
10249
- var completeTask = (options) => (options.client ?? client).post({
10365
+ var updateTeamMemberRole = (options) => (options.client ?? client).patch({
10250
10366
  security: [
10251
10367
  {
10252
10368
  scheme: "bearer",
@@ -10262,7 +10378,7 @@ var completeTask = (options) => (options.client ?? client).post({
10262
10378
  type: "apiKey"
10263
10379
  }
10264
10380
  ],
10265
- url: "/tasks/{id}/attempts/{n}/complete",
10381
+ url: "/teams/{id}/members/{subjectId}",
10266
10382
  ...options,
10267
10383
  headers: {
10268
10384
  "Content-Type": "application/json",
@@ -10270,9 +10386,9 @@ var completeTask = (options) => (options.client ?? client).post({
10270
10386
  }
10271
10387
  });
10272
10388
  /**
10273
- * Mark an attempt as failed with error details.
10389
+ * List pending transfers where the caller is destination team owner.
10274
10390
  */
10275
- var failTask = (options) => (options.client ?? client).post({
10391
+ var listPendingTransfers = (options) => (options?.client ?? client).get({
10276
10392
  security: [
10277
10393
  {
10278
10394
  scheme: "bearer",
@@ -10288,17 +10404,13 @@ var failTask = (options) => (options.client ?? client).post({
10288
10404
  type: "apiKey"
10289
10405
  }
10290
10406
  ],
10291
- url: "/tasks/{id}/attempts/{n}/fail",
10292
- ...options,
10293
- headers: {
10294
- "Content-Type": "application/json",
10295
- ...options.headers
10296
- }
10407
+ url: "/transfers",
10408
+ ...options
10297
10409
  });
10298
10410
  /**
10299
- * Cancel a task.
10411
+ * Accept a pending diary transfer. Caller must be destination team owner.
10300
10412
  */
10301
- var cancelTask = (options) => (options.client ?? client).post({
10413
+ var acceptTransfer = (options) => (options.client ?? client).post({
10302
10414
  security: [
10303
10415
  {
10304
10416
  scheme: "bearer",
@@ -10314,17 +10426,13 @@ var cancelTask = (options) => (options.client ?? client).post({
10314
10426
  type: "apiKey"
10315
10427
  }
10316
10428
  ],
10317
- url: "/tasks/{id}/cancel",
10318
- ...options,
10319
- headers: {
10320
- "Content-Type": "application/json",
10321
- ...options.headers
10322
- }
10429
+ url: "/transfers/{transferId}/accept",
10430
+ ...options
10323
10431
  });
10324
10432
  /**
10325
- * List all attempts for a task.
10433
+ * Reject a pending diary transfer.
10326
10434
  */
10327
- var listTaskAttempts = (options) => (options.client ?? client).get({
10435
+ var rejectTransfer = (options) => (options.client ?? client).post({
10328
10436
  security: [
10329
10437
  {
10330
10438
  scheme: "bearer",
@@ -10340,13 +10448,13 @@ var listTaskAttempts = (options) => (options.client ?? client).get({
10340
10448
  type: "apiKey"
10341
10449
  }
10342
10450
  ],
10343
- url: "/tasks/{id}/attempts",
10451
+ url: "/transfers/{transferId}/reject",
10344
10452
  ...options
10345
10453
  });
10346
10454
  /**
10347
- * List messages for a task attempt.
10455
+ * Generate a single-use voucher code that another agent can use to register. Requires authentication. Max 5 active vouchers per agent.
10348
10456
  */
10349
- var listTaskMessages = (options) => (options.client ?? client).get({
10457
+ var issueVoucher = (options) => (options?.client ?? client).post({
10350
10458
  security: [
10351
10459
  {
10352
10460
  scheme: "bearer",
@@ -10362,13 +10470,13 @@ var listTaskMessages = (options) => (options.client ?? client).get({
10362
10470
  type: "apiKey"
10363
10471
  }
10364
10472
  ],
10365
- url: "/tasks/{id}/attempts/{n}/messages",
10473
+ url: "/vouch",
10366
10474
  ...options
10367
10475
  });
10368
10476
  /**
10369
- * Append messages to a task attempt.
10477
+ * List your active (unredeemed, unexpired) voucher codes.
10370
10478
  */
10371
- var appendTaskMessages = (options) => (options.client ?? client).post({
10479
+ var listActiveVouchers = (options) => (options?.client ?? client).get({
10372
10480
  security: [
10373
10481
  {
10374
10482
  scheme: "bearer",
@@ -10384,25 +10492,14 @@ var appendTaskMessages = (options) => (options.client ?? client).post({
10384
10492
  type: "apiKey"
10385
10493
  }
10386
10494
  ],
10387
- url: "/tasks/{id}/attempts/{n}/messages",
10388
- ...options,
10389
- headers: {
10390
- "Content-Type": "application/json",
10391
- ...options.headers
10392
- }
10393
- });
10394
- /**
10395
- * List all problem types used in API error responses (RFC 9457).
10396
- */
10397
- var listProblemTypes = (options) => (options?.client ?? client).get({
10398
- url: "/problems",
10495
+ url: "/vouch/active",
10399
10496
  ...options
10400
10497
  });
10401
10498
  /**
10402
- * Get details about a specific problem type (RFC 9457).
10499
+ * Get the public web-of-trust graph. Each edge represents a redeemed voucher. Identified by key fingerprints (derived from public keys), not names.
10403
10500
  */
10404
- var getProblemType = (options) => (options.client ?? client).get({
10405
- url: "/problems/{type}",
10501
+ var getTrustGraph = (options) => (options?.client ?? client).get({
10502
+ url: "/vouch/graph",
10406
10503
  ...options
10407
10504
  });
10408
10505
  //#endregion
@@ -10668,22 +10765,6 @@ function createDiariesNamespace(context) {
10668
10765
  path: { id }
10669
10766
  }));
10670
10767
  },
10671
- async consolidate(id, body) {
10672
- return unwrapResult(await consolidateDiary({
10673
- client,
10674
- auth,
10675
- path: { id },
10676
- body
10677
- }));
10678
- },
10679
- async compile(id, body) {
10680
- return unwrapResult(await compileDiary({
10681
- client,
10682
- auth,
10683
- path: { id },
10684
- body
10685
- }));
10686
- },
10687
10768
  async tags(diaryId, query) {
10688
10769
  return unwrapResult(await listDiaryTags({
10689
10770
  client,
@@ -11755,13 +11836,6 @@ function createEntriesNamespace(context) {
11755
11836
  body
11756
11837
  }));
11757
11838
  },
11758
- async reflect(query) {
11759
- return unwrapResult(await reflectDiary({
11760
- client,
11761
- auth,
11762
- query
11763
- }));
11764
- },
11765
11839
  async verify(entryId) {
11766
11840
  return unwrapResult(await verifyDiaryEntryById({
11767
11841
  client,
@@ -15203,7 +15277,7 @@ function createMoltNetTools(config) {
15203
15277
  defineTool({
15204
15278
  name: "moltnet_host_exec",
15205
15279
  label: "Run command on host (escape hatch — requires user approval)",
15206
- description: "Runs a command on the HOST machine, outside the sandbox VM. The user will be prompted to approve each invocation via a UI dialog — do NOT call this tool speculatively. Use ONLY when a sandboxed operation is impossible — e.g. `git push`, `gh pr create`.\n\nAllowed executables: git, gh, moltnet. Runs with a minimal env (PATH, HOME, GIT_CONFIG_GLOBAL, …); pass any additional vars via the `env` parameter (e.g. GH_TOKEN). Every invocation is logged as an auditable host execution.",
15280
+ description: "Runs a command on the HOST machine, outside the sandbox VM. The user will be prompted to approve each invocation via a UI dialog, and in headless task runs there is no one to approve — so do NOT call this tool speculatively. Routine git and gh work — pushing branches, opening pull requests, etc. — runs INSIDE the VM via the normal `bash` tool, where your credentials are already injected; use that, not this escape hatch. Reserve this tool for the rare case that genuinely cannot run in the guest (e.g. reaching a host-only resource the VM has no path to).\n\nAllowed executables: git, gh, moltnet. Runs with a minimal env (PATH, HOME, GIT_CONFIG_GLOBAL, …); pass any additional vars via the `env` parameter (e.g. GH_TOKEN). Every invocation is logged as an auditable host execution.",
15207
15281
  parameters: Type.Object({
15208
15282
  executable: Type.String({ description: "Executable to run (git | gh | moltnet)" }),
15209
15283
  args: Type.Array(Type.String(), { description: "Arguments to pass to the executable" }),
@@ -16277,6 +16351,11 @@ function buildRuntimeInstructor(ctx) {
16277
16351
  "",
16278
16352
  "- `git push` uses the gitconfig-configured credential helper and is not",
16279
16353
  " a `gh` call — it does not need `GH_TOKEN`.",
16354
+ "- Run `git` and `gh` in the VM with your normal `bash` tool — your",
16355
+ " credentials are injected here, so they work in the guest. The",
16356
+ " `moltnet_host_exec` tool is a last-resort host escape-hatch that",
16357
+ " requires human approval and is unavailable in headless task runs;",
16358
+ " never use it for routine git/gh.",
16280
16359
  "",
16281
16360
  "## Diary discipline",
16282
16361
  "",
@@ -17339,7 +17418,7 @@ async function executePiTask(claimedTask, reporter, opts) {
17339
17418
  is_error: event.isError,
17340
17419
  result: event.isError ? truncateForWire(event.result) : void 0
17341
17420
  }));
17342
- if (event.isError) track(emitError("tool_call_error", describeToolErrorMessage(event.result), {
17421
+ if (shouldEmitToolCallError(event)) track(emitError("tool_call_error", describeToolErrorMessage(event.result), {
17343
17422
  tool: event.toolName,
17344
17423
  result: truncateForWire(event.result)
17345
17424
  }));
@@ -17591,6 +17670,28 @@ function summarizePayloadForLog(kind, payload) {
17591
17670
  }
17592
17671
  }
17593
17672
  /**
17673
+ * Classify a `tool_execution_end` event for telemetry purposes.
17674
+ *
17675
+ * Bash subprocess non-zero exits are routine — agents deliberately probe
17676
+ * absent commands (e.g. `command -v docker` returning 127) and treat the
17677
+ * non-zero exit as data. Surfacing those as `tool_call_error` events floods
17678
+ * the message stream with spurious errors and makes a successful
17679
+ * negative-space probe look like a failing task.
17680
+ *
17681
+ * Reserve the `error` kind for genuine tool-machinery failures (transport,
17682
+ * MCP, malformed response). The `is_error` flag on `tool_call_end` still
17683
+ * records the non-zero exit, so consumers can distinguish ok vs. failed
17684
+ * bash calls without searching for a sibling error event.
17685
+ *
17686
+ * Bash timeouts remain handled separately by the cap-abort path; that
17687
+ * branch doesn't go through `tool_call_error`.
17688
+ */
17689
+ function shouldEmitToolCallError(event) {
17690
+ if (!event.isError) return false;
17691
+ if (event.toolName === "bash") return false;
17692
+ return true;
17693
+ }
17694
+ /**
17594
17695
  * Detect pi's bash-timeout error wrapper in a `tool_execution_end`
17595
17696
  * result. The bash tool surfaces a timeout as a structured tool result
17596
17697
  * `{ content: [{ type: 'text', text: '… Command timed out after N
@@ -18182,7 +18283,7 @@ function resolveTaskWorktreeBranch(task, workspaceMode) {
18182
18283
  return `task/${slugifyAsciiLower(task.taskType, 60) || "task"}-${task.id.slice(0, 8)}`;
18183
18284
  }
18184
18285
  function resolveTaskWorkspaceMode(task, policy) {
18185
- if (task.taskType !== "run_eval") return policy.workspaceMode;
18286
+ if (!policy.acceptsInputWorkspaceOverride) return policy.workspaceMode;
18186
18287
  switch (typeof task.input.execution?.workspace === "string" ? task.input.execution.workspace : null) {
18187
18288
  case "none": return "scratch_mount";
18188
18289
  case "shared_mount": return "shared_mount";